# HG changeset patch # User FUJIWARA Katsunori # Date 1448993528 -32400 # 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 -r 77995317b374 -r 84de71ec5c61 mercurial/commands.py --- a/mercurial/commands.py Wed Dec 02 03:12:07 2015 +0900 +++ b/mercurial/commands.py Wed Dec 02 03:12:08 2015 +0900 @@ -4557,11 +4557,6 @@ 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 @@ 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')