Comments
Patch
@@ -615,6 +615,13 @@ def unshelve(ui, repo, *shelved, **opts)
than ``maxbackups`` backups are kept, if same timestamp
prevents from deciding exact order of them, for safety.
"""
+ wlock = repo.wlock()
+ try:
+ return _dounshelve(ui, repo, *shelved, **opts)
+ finally:
+ lockmod.release(wlock)
+
+def _dounshelve(ui, repo, *shelved, **opts):
abortf = opts['abort']
continuef = opts['continue']
if not abortf and not continuef:
@@ -653,9 +660,8 @@ def unshelve(ui, repo, *shelved, **opts)
raise error.Abort(_("shelved change '%s' not found") % basename)
oldquiet = ui.quiet
- wlock = lock = tr = None
- try:
- wlock = repo.wlock()
+ lock = tr = None
+ try:
lock = repo.lock()
tr = repo.transaction('unshelve', report=lambda x: None)
@@ -749,7 +755,7 @@ def unshelve(ui, repo, *shelved, **opts)
ui.quiet = oldquiet
if tr:
tr.release()
- lockmod.release(lock, wlock)
+ lockmod.release(lock)
@command('shelve',
[('A', 'addremove', None,