Pierre-Yves David avatar Pierre-Yves David committed 6d24bd4

simplify locking in prune

Comments (0)

Files changed (1)

     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,
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.