Mercurial > public > mercurial-scm > hg
diff mercurial/commands.py @ 26030:5243890224ff
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 13 Aug 2015 19:37:47 -0500 |
parents | 84c00f03e06c 6fbe35588433 |
children | 10917b062adf |
line wrap: on
line diff
--- a/mercurial/commands.py Wed Aug 12 19:44:21 2015 -0700 +++ b/mercurial/commands.py Thu Aug 13 19:37:47 2015 -0500 @@ -6475,51 +6475,55 @@ if rev is None or rev == '': rev = node - cmdutil.clearunfinished(repo) - - # with no argument, we also move the active bookmark, if any - rev, movemarkfrom = bookmarks.calculateupdate(ui, repo, rev) - - # if we defined a bookmark, we have to remember the original bookmark name - brev = rev - rev = scmutil.revsingle(repo, rev, rev).rev() - - if check and clean: - raise util.Abort(_("cannot specify both -c/--check and -C/--clean")) - - if date: - if rev is not None: - raise util.Abort(_("you can't specify a revision and a date")) - rev = cmdutil.finddate(ui, repo, date) - - if check: - cmdutil.bailifchanged(repo, merge=False) - if rev is None: - rev = repo[repo[None].branch()].rev() - - repo.ui.setconfig('ui', 'forcemerge', tool, 'update') - - if clean: - ret = hg.clean(repo, rev) - else: - ret = hg.update(repo, rev) - - if not ret and movemarkfrom: - if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): - ui.status(_("updating bookmark %s\n") % repo._activebookmark) + wlock = repo.wlock() + try: + cmdutil.clearunfinished(repo) + + # with no argument, we also move the active bookmark, if any + rev, movemarkfrom = bookmarks.calculateupdate(ui, repo, rev) + + # if we defined a bookmark, we have to remember the original name + brev = rev + rev = scmutil.revsingle(repo, rev, rev).rev() + + if check and clean: + raise util.Abort(_("cannot specify both -c/--check and -C/--clean")) + + if date: + if rev is not None: + raise util.Abort(_("you can't specify a revision and a date")) + rev = cmdutil.finddate(ui, repo, date) + + if check: + cmdutil.bailifchanged(repo, merge=False) + if rev is None: + rev = repo[repo[None].branch()].rev() + + repo.ui.setconfig('ui', 'forcemerge', tool, 'update') + + if clean: + ret = hg.clean(repo, rev) else: - # this can happen with a non-linear update - ui.status(_("(leaving bookmark %s)\n") % - repo._activebookmark) + ret = hg.update(repo, rev) + + if not ret and movemarkfrom: + if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): + ui.status(_("updating bookmark %s\n") % repo._activebookmark) + else: + # this can happen with a non-linear update + ui.status(_("(leaving bookmark %s)\n") % + repo._activebookmark) + bookmarks.deactivate(repo) + elif brev in repo._bookmarks: + bookmarks.activate(repo, brev) + ui.status(_("(activating bookmark %s)\n") % brev) + elif brev: + if repo._activebookmark: + ui.status(_("(leaving bookmark %s)\n") % + repo._activebookmark) bookmarks.deactivate(repo) - elif brev in repo._bookmarks: - bookmarks.activate(repo, brev) - ui.status(_("(activating bookmark %s)\n") % brev) - elif brev: - if repo._activebookmark: - ui.status(_("(leaving bookmark %s)\n") % - repo._activebookmark) - bookmarks.deactivate(repo) + finally: + wlock.release() return ret