diff mercurial/commands.py @ 18471:2096e025a728 stable

update: update to current bookmark if it moved out from under us (issue3682) If the current bookmark (the one listed in .hg/bookmarks.current) doesn't point to a parent of the working directory, e.g. if it was moved by a pull, use that as the update target instead of the tipmost descendent. A small predicate is (finally) added to the bookmarks module to check whether the current bookmark is also active.
author Kevin Bullock <kbullock@ringworld.org>
date Mon, 21 Jan 2013 13:47:10 -0600
parents a2e9fe93d9ea
children e031e10cdc06
line wrap: on
line diff
--- a/mercurial/commands.py	Mon Jan 21 12:58:59 2013 -0600
+++ b/mercurial/commands.py	Mon Jan 21 13:47:10 2013 -0600
@@ -5961,7 +5961,12 @@
     # with no argument, we also move the current bookmark, if any
     movemarkfrom = None
     if rev is None:
-        movemarkfrom = repo['.'].node()
+        curmark = repo._bookmarkcurrent
+        if bookmarks.iscurrent(repo):
+            movemarkfrom = repo['.'].node()
+        elif curmark:
+            ui.status(_("updating to active bookmark %s\n") % curmark)
+            rev = curmark
 
     # if we defined a bookmark, we have to remember the original bookmark name
     brev = rev