1. Pierre-Yves David
  2. mutable-history

Commits

Pierre-Yves David  committed 6d24bd4

simplify locking in prune

  • Participants
  • Parent commits 6cbb52a
  • Branches stable

Comments (0)

Files changed (1)

File hgext/evolve.py

View file
  • Ignore whitespace
     revs = list(revs)
     revs.extend(opts['rev'])
     succs = opts['new'] + opts['succ']
+    wlock = lock = None
     wlock = repo.wlock()
     try:
         lock = repo.lock()
-        try:
-            new = set(scmutil.revrange(repo, succs))
-            targetnodes = set(scmutil.revrange(repo, revs))
-            if not targetnodes:
-                raise util.Abort('nothing to prune')
-            if new:
-                sucs = tuple(repo[n] for n in new)
-            else:
-                sucs = ()
-            markers = []
-            for n in targetnodes:
-                markers.append((repo[n], sucs))
-            createmarkers(repo, markers)
+        new = set(scmutil.revrange(repo, succs))
+        targetnodes = set(scmutil.revrange(repo, revs))
+        if not targetnodes:
+            raise util.Abort('nothing to prune')
+        if new:
+            sucs = tuple(repo[n] for n in new)
+        else:
+            sucs = ()
+        markers = []
+        for n in targetnodes:
+            markers.append((repo[n], sucs))
+        createmarkers(repo, markers)
 
-            # update to an unkilled parent
-            wdp = repo['.']
-            newnode = wdp
-            while newnode.obsolete():
-                newnode = newnode.parents()[0]
-            if newnode.node() != wdp.node():
-                commands.update(ui, repo, newnode.rev())
-                ui.status(_('working directory now at %s\n') % newnode)
-        finally:
-            lock.release()
+        # update to an unkilled parent
+        wdp = repo['.']
+        newnode = wdp
+        while newnode.obsolete():
+            newnode = newnode.parents()[0]
+        if newnode.node() != wdp.node():
+            commands.update(ui, repo, newnode.rev())
+            ui.status(_('working directory now at %s\n') % newnode)
     finally:
-        wlock.release()
+        lockmod.release(lock, wlock)
 
 @command('amend|refresh',
     [('A', 'addremove', None,