--- a/hgext/evolve.py Thu Apr 30 14:40:36 2015 -0700
+++ b/hgext/evolve.py Thu Apr 30 14:47:01 2015 -0700
@@ -2061,10 +2061,7 @@
repo._bookmarks.write()
return result
finally:
- if lock is not None:
- lock.release()
- if wlock is not None:
- wlock.release()
+ lockmod.release(lock, wlock)
@command('^touch',
[('r', 'rev', [], 'revision to update'),
@@ -2088,40 +2085,37 @@
return 1
if not duplicate and repo.revs('public() and %ld', revs):
raise util.Abort("can't touch public revision")
- wlock = lock = None
+ wlock = lock = tr = None
try:
wlock = repo.wlock()
lock = repo.lock()
tr = repo.transaction('touch')
revs.sort() # ensure parent are run first
newmapping = {}
- try:
- for r in revs:
- ctx = repo[r]
- extra = ctx.extra().copy()
- extra['__touch-noise__'] = random.randint(0, 0xffffffff)
- # search for touched parent
- p1 = ctx.p1().node()
- p2 = ctx.p2().node()
- p1 = newmapping.get(p1, p1)
- p2 = newmapping.get(p2, p2)
- new, unusedvariable = rewrite(repo, ctx, [], ctx,
- [p1, p2],
- commitopts={'extra': extra})
- # store touched version to help potential children
- newmapping[ctx.node()] = new
- if not duplicate:
- obsolete.createmarkers(repo, [(ctx, (repo[new],))])
- phases.retractboundary(repo, tr, ctx.phase(), [new])
- if ctx in repo[None].parents():
- repo.dirstate.beginparentchange()
- repo.dirstate.setparents(new, node.nullid)
- repo.dirstate.endparentchange()
- tr.close()
- finally:
- tr.release()
+ for r in revs:
+ ctx = repo[r]
+ extra = ctx.extra().copy()
+ extra['__touch-noise__'] = random.randint(0, 0xffffffff)
+ # search for touched parent
+ p1 = ctx.p1().node()
+ p2 = ctx.p2().node()
+ p1 = newmapping.get(p1, p1)
+ p2 = newmapping.get(p2, p2)
+ new, unusedvariable = rewrite(repo, ctx, [], ctx,
+ [p1, p2],
+ commitopts={'extra': extra})
+ # store touched version to help potential children
+ newmapping[ctx.node()] = new
+ if not duplicate:
+ obsolete.createmarkers(repo, [(ctx, (repo[new],))])
+ phases.retractboundary(repo, tr, ctx.phase(), [new])
+ if ctx in repo[None].parents():
+ repo.dirstate.beginparentchange()
+ repo.dirstate.setparents(new, node.nullid)
+ repo.dirstate.endparentchange()
+ tr.close()
finally:
- lockmod.release(lock, wlock)
+ lockmod.release(tr, lock, wlock)
@command('^fold|squash',
[('r', 'rev', [], _("revision to fold")),
@@ -2574,18 +2568,16 @@
@eh.addattr(localrepo.localpeer, 'evoext_pushobsmarkers_0')
def local_pushobsmarkers(peer, obsfile):
data = obsfile.read()
- lock = peer._repo.lock()
+ tr = lock = None
try:
+ lock = peer._repo.lock()
tr = peer._repo.transaction('pushkey: obsolete markers')
- try:
- new = peer._repo.obsstore.mergemarkers(tr, data)
- if new is not None:
- obsexcmsg(peer._repo.ui, "%i obsolescence markers added\n" % new, True)
- tr.close()
- finally:
- tr.release()
+ new = peer._repo.obsstore.mergemarkers(tr, data)
+ if new is not None:
+ obsexcmsg(peer._repo.ui, "%i obsolescence markers added\n" % new, True)
+ tr.close()
finally:
- lock.release()
+ lockmod.release(tr, lock)
peer._repo.hook('evolve_pushobsmarkers')
def srv_pushobsmarkers(repo, proto):
@@ -2595,18 +2587,16 @@
proto.getfile(fp)
data = fp.getvalue()
fp.close()
- lock = repo.lock()
+ tr = lock = None
try:
+ lock = repo.lock()
tr = repo.transaction('pushkey: obsolete markers')
- try:
- new = repo.obsstore.mergemarkers(tr, data)
- if new is not None:
- obsexcmsg(repo.ui, "%i obsolescence markers added\n" % new, True)
- tr.close()
- finally:
- tr.release()
+ new = repo.obsstore.mergemarkers(tr, data)
+ if new is not None:
+ obsexcmsg(repo.ui, "%i obsolescence markers added\n" % new, True)
+ tr.close()
finally:
- lock.release()
+ lockmod.release(tr, lock)
repo.hook('evolve_pushobsmarkers')
return wireproto.pushres(0)