# HG changeset patch # User FUJIWARA Katsunori # Date 2015-12-01 18:12:08 # Node ID 84de71ec5c61dc50edba6e4d96c99670a3670634 # Parent 77995317b374c15ff10cd479a86503bf0059bd94 commands: execute checkunfinished and bailifchanged inside wlock scope Before this patch, "hg import" executes below before acquisition of wlock: - cmdutil.checkunfinished() - cmdutil.bailifchanged() It may cause unintentional result, if another command runs parallelly (see also issue4368). To avoid this issue, this patch executes 'cmdutil.checkunfinished()' and 'cmdutil.bailifchanged()' inside wlock scope of "hg import". diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -4557,11 +4557,6 @@ def import_(ui, repo, patch1=None, *patc if opts.get('exact') and opts.get('prefix'): raise error.Abort(_('cannot use --exact with --prefix')) - if update: - cmdutil.checkunfinished(repo) - if (opts.get('exact') or not opts.get('force')) and update: - cmdutil.bailifchanged(repo) - base = opts["base"] wlock = dsguard = lock = tr = None msgs = [] @@ -4571,6 +4566,12 @@ def import_(ui, repo, patch1=None, *patc try: try: wlock = repo.wlock() + + if update: + cmdutil.checkunfinished(repo) + if (opts.get('exact') or not opts.get('force')) and update: + cmdutil.bailifchanged(repo) + if not opts.get('no_commit'): lock = repo.lock() tr = repo.transaction('import')