Mercurial > hg
changeset 15204:3ce9b1a7538b
transplant: wrap a transaction around the whole command
author | Greg Ward <greg@gerg.ca> |
---|---|
date | Tue, 04 Oct 2011 19:43:45 -0400 |
parents | c7ce651a6bc9 |
children | 4e5b7d130e76 |
files | hgext/transplant.py tests/test-transplant.t |
diffstat | 2 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/transplant.py Fri Oct 07 17:08:24 2011 -0500 +++ b/hgext/transplant.py Tue Oct 04 19:43:45 2011 -0400 @@ -105,10 +105,11 @@ diffopts = patch.diffopts(self.ui, opts) diffopts.git = True - lock = wlock = None + lock = wlock = tr = None try: wlock = repo.wlock() lock = repo.lock() + tr = repo.transaction('transplant') for rev in revs: node = revmap[rev] revstr = '%s:%s' % (rev, short(node)) @@ -172,12 +173,15 @@ finally: if patchfile: os.unlink(patchfile) + tr.close() if pulls: repo.pull(source, heads=pulls) merge.update(repo, pulls[-1], False, False, None) finally: self.saveseries(revmap, merges) self.transplants.write() + if tr: + tr.release() lock.release() wlock.release()
--- a/tests/test-transplant.t Fri Oct 07 17:08:24 2011 -0500 +++ b/tests/test-transplant.t Tue Oct 04 19:43:45 2011 -0400 @@ -81,6 +81,19 @@ 1 0 +rollback the transplant + $ hg rollback + repository tip rolled back to revision 4 (undo transplant) + working directory now based on revision 1 + $ hg tip -q + 4:a53251cdf717 + $ hg parents -q + 1:d11e3596cc1a + $ hg status + ? b1 + ? b2 + ? b3 + $ hg clone ../t ../prune updating to branch default 4 files updated, 0 files merged, 0 files removed, 0 files unresolved