Comments
Patch
@@ -5566,6 +5566,10 @@ def postincoming(ui, repo, modheads, opt
pass # no-op update
elif bookmarks.update(repo, [movemarkfrom], repo['.'].node()):
ui.status(_("updating bookmark %s\n") % repo._activebookmark)
+ elif brev in repo._bookmarks:
+ if brev != repo._activebookmark:
+ ui.status(_("(activating bookmark %s)\n") % brev)
+ bookmarks.activate(repo, brev)
return ret
if modheads > 1:
currentbranchheads = len(repo.branchheads())
@@ -137,6 +137,69 @@ rollback just rewinds bookmark, which is
$ hg bookmarks
* active-before-pull 5:9ed4148f9a91
+(discard pulled chagnes)
+
+ $ hg update -q 20a3d5b6ab59
+ $ hg rollback -q
+
+ $ hg -R ../t bookmark -d active-before-pull
+
+Test that updating activates the bookmark, which matches with the
+explicit destination of the update.
+
+ $ hg -R ../t bookmark -r bar bookmark-on-bar-tip
+
+(1) activating by --rev BOOKMARK
+
+ $ hg bookmark -f active-before-pull
+ $ hg bookmarks
+ * active-before-pull 4:20a3d5b6ab59
+
+ $ hg pull -u -r bookmark-on-bar-tip
+ pulling from $TESTTMP/t (glob)
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 1 files
+ adding remote bookmark bookmark-on-bar-tip
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (activating bookmark bookmark-on-bar-tip)
+
+ $ hg parents -q
+ 6:0c90a742bd4f
+ $ hg bookmarks
+ active-before-pull 4:20a3d5b6ab59
+ * bookmark-on-bar-tip 6:0c90a742bd4f
+
+(discard pulled changes)
+
+ $ hg update -q 20a3d5b6ab59
+ $ hg rollback -q
+
+(2) activating by URL#BOOKMARK
+
+ $ hg bookmark -f active-before-pull
+ $ hg bookmarks
+ * active-before-pull 4:20a3d5b6ab59
+
+ $ hg pull -u $TESTTMP/t#bookmark-on-bar-tip
+ pulling from $TESTTMP/t (glob)
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 1 files
+ adding remote bookmark bookmark-on-bar-tip
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (activating bookmark bookmark-on-bar-tip)
+
+ $ hg parents -q
+ 6:0c90a742bd4f
+ $ hg bookmarks
+ active-before-pull 4:20a3d5b6ab59
+ * bookmark-on-bar-tip 6:0c90a742bd4f
+
Test updating for multiple heads:
$ hg -R ../t update -q 20a3d5b6ab59