changeset 27198:7df042d0784f

shelve: execute checkunfinished inside wlock scope Before this patch, "hg shelve" of shelve extension executes 'cmdutil.checkunfinished()' before acquisition of wlock. It may cause unintentional result, if another command runs parallelly (see also issue4368). To avoid this issue, this patch executes 'cmdutil.checkunfinished()' inside wlock scope of "hg shelve". This also fixes issue4957, because now 'cmdutil.checkunfinished()' isn't invoked at "hg shelve" with options below: --cleanup --delete --list --patch --stat
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Wed, 02 Dec 2015 03:12:08 +0900
parents 6df3ec5bb813
children 8f5735b4aca5
files hgext/shelve.py
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/shelve.py	Wed Dec 02 03:12:08 2015 +0900
+++ b/hgext/shelve.py	Wed Dec 02 03:12:08 2015 +0900
@@ -226,6 +226,7 @@
     """subcommand that creates a new shelve"""
     wlock = repo.wlock()
     try:
+        cmdutil.checkunfinished(repo)
         return _docreatecmd(ui, repo, pats, opts)
     finally:
         lockmod.release(wlock)
@@ -808,8 +809,6 @@
     To delete specific shelved changes, use ``--delete``. To delete
     all shelved changes, use ``--cleanup``.
     '''
-    cmdutil.checkunfinished(repo)
-
     allowables = [
         ('addremove', set(['create'])), # 'create' is pseudo action
         ('cleanup', set(['cleanup'])),