Comments
Patch
@@ -1281,11 +1281,16 @@
parents = wparents[0].parents()
displayer = cmdutil.show_changeset(ui, repo, {'template': shorttemplate})
if len(parents) == 1:
p = parents[0]
- hg.update(repo, p.rev())
+ bm = bookmarks.readcurrent(repo)
+ shouldmove = bm is not None and bookmarks.iscurrent(repo, bm)
+ ret = hg.update(repo, p.rev())
+ if not ret and shouldmove:
+ repo._bookmarks[bm] = p.node()
+ repo._bookmarks.write()
displayer.show(p)
return 0
else:
for p in parents:
displayer.show(p)
@@ -1307,11 +1312,16 @@
if not children:
ui.warn(_('no non-obsolete children\n'))
return 1
if len(children) == 1:
c = children[0]
- hg.update(repo, c.rev())
+ bm = bookmarks.readcurrent(repo)
+ shouldmove = bm is not None and bookmarks.iscurrent(repo, bm)
+ ret = hg.update(repo, c.rev())
+ if not ret and shouldmove:
+ repo._bookmarks[bm] = c.node()
+ repo._bookmarks.write()
displayer.show(c)
return 0
else:
for c in children:
displayer.show(c)
new file mode 100644
@@ -0,0 +1,62 @@
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > hgext.rebase=
+ > hgext.graphlog=
+ > EOF
+ $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
+
+hg prev should move active bookmark
+ $ hg init
+ $ touch a
+ $ hg add a
+ $ hg commit -m 'added a'
+ $ touch b
+ $ hg add b
+ $ hg commit -m 'added b'
+ $ hg bookmark mark
+ $ hg bookmarks
+ * mark 1:6e742c9127b3
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [0] added a
+ $ hg bookmarks
+ * mark 0:a154386e50d1
+
+hg next should move active bookmark
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [1] added b
+ $ hg bookmarks
+ * mark 1:6e742c9127b3
+
+hg next/prev should not interfere with inactive bookmarks
+ $ touch c
+ $ hg add c
+ $ hg commit -m 'added c'
+ $ hg bookmark -r2 no-move
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [1] added b
+ $ hg bookmarks
+ * mark 1:6e742c9127b3
+ no-move 2:4e26ef31f919
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [2] added c
+ $ hg bookmarks
+ * mark 2:4e26ef31f919
+ no-move 2:4e26ef31f919
+ $ hg up 1
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [2] added c
+ $ hg bookmarks
+ mark 2:4e26ef31f919
+ no-move 2:4e26ef31f919
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [1] added b
+ $ hg bookmarks
+ mark 2:4e26ef31f919
+ no-move 2:4e26ef31f919