# HG changeset patch # User Matt Mackall # Date 1155046760 18000 # Node ID 3aeab7bb5adc596a1b9350e303b020c77506c3f9 # Parent 1ea086bc20861fba556a3c9d5b30c502d4256b01 Refactor update locking slightly diff -r 1ea086bc2086 -r 3aeab7bb5adc mercurial/commands.py --- a/mercurial/commands.py Tue Aug 08 09:11:16 2006 -0500 +++ b/mercurial/commands.py Tue Aug 08 09:19:20 2006 -0500 @@ -2606,7 +2606,7 @@ if not opts.get('dry_run'): repo.dirstate.forget(forget[0]) - r = hg.revert(repo, node, update.has_key) + r = hg.revert(repo, node, update.has_key, wlock) repo.dirstate.update(add[0], 'a') repo.dirstate.update(undelete[0], 'n') repo.dirstate.update(remove[0], 'r') diff -r 1ea086bc2086 -r 3aeab7bb5adc mercurial/hg.py --- a/mercurial/hg.py Tue Aug 08 09:11:16 2006 -0500 +++ b/mercurial/hg.py Tue Aug 08 09:19:20 2006 -0500 @@ -220,10 +220,10 @@ return _merge.update(repo, node, branchmerge=True, forcemerge=force, remind=remind, wlock=wlock) -def revert(repo, node, choose): +def revert(repo, node, choose, wlock): """revert changes to revision in node without updating dirstate""" return _merge.update(repo, node, force=True, partial=choose, - show_stats=False) + show_stats=False, wlock=wlock) def verify(repo): """verify the consistency of a repository""" diff -r 1ea086bc2086 -r 3aeab7bb5adc mercurial/merge.py --- a/mercurial/merge.py Tue Aug 08 09:11:16 2006 -0500 +++ b/mercurial/merge.py Tue Aug 08 09:19:20 2006 -0500 @@ -49,6 +49,10 @@ def update(repo, node, branchmerge=False, force=False, partial=None, forcemerge=False, wlock=None, show_stats=True, remind=True): + + if not wlock: + wlock = repo.wlock() + pl = repo.dirstate.parents() if not force and pl[1] != nullid: raise util.Abort(_("outstanding uncommitted merges")) @@ -110,8 +114,6 @@ mw[f] = "" mfw[f] = util.is_exec(repo.wjoin(f), mfw.get(f, False)) - if not partial and not wlock: wlock = repo.wlock() - for f in deleted + removed: if f in mw: del mw[f]