evolve: active bookmark should move when using prev/next (#37)
The #37 references the bitbucket issue for mutable-history, that
can be found here:
https://bitbucket.org/marmoute/mutable-history/issue/37/
--- a/hgext/evolve.py Thu Apr 03 23:36:23 2014 -0700
+++ b/hgext/evolve.py Wed Mar 26 23:58:45 2014 +0100
@@ -1277,7 +1277,12 @@
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:
@@ -1303,7 +1308,12 @@
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:
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-prev-next.t Wed Mar 26 23:58:45 2014 +0100
@@ -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