X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/0a8fdf777d7f183cb83b3db47c23c12e7cfc6c45..0249ff0d913dfaef2a6f5e8518e5736545a23c28:/lib/hg.py diff --git a/lib/hg.py b/lib/hg.py index e785b375..2b885b3c 100644 --- a/lib/hg.py +++ b/lib/hg.py @@ -108,4 +108,22 @@ class Repository(object): # reread keys # self._keys = self.get_persisted_objects_keys() # return node.hex(rev) + + def in_branch(self, branch_name, action): + wlock = self.repo.wlock() + try: + current_branch = self.repo[None].branch() + self.repo.dirstate.setbranch(branch_name) + try: + # do some stuff + action() + finally: + self.repo.dirstate.setbranch(current_branch) + finally: + wlock.release() + + def write_lock(self): + """Returns w write lock to the repository.""" + return self.repo.wlock() +