Comments
Patch
@@ -786,21 +786,23 @@
except util.Abort:
# Invalidate the previous setparents
repo.dirstate.invalidate()
raise
-def _bookmarksupdater(repo, oldid):
+def _bookmarksupdater(repo, oldid, moveinactive=True):
"""Return a callable update(newid) updating the current bookmark
and bookmarks bound to oldid to newid.
"""
bm = bookmarks.readcurrent(repo)
def updatebookmarks(newid):
dirty = False
if bm:
repo._bookmarks[bm] = newid
dirty = True
- oldbookmarks = repo.nodebookmarks(oldid)
+ oldbookmarks = None
+ if moveinactive:
+ oldbookmarks = repo.nodebookmarks(oldid)
if oldbookmarks:
for b in oldbookmarks:
repo._bookmarks[b] = newid
dirty = True
if dirty:
@@ -1281,11 +1283,14 @@
parents = wparents[0].parents()
displayer = cmdutil.show_changeset(ui, repo, {'template': shorttemplate})
if len(parents) == 1:
p = parents[0]
+ bmupdate = _bookmarksupdater(repo, wparents[0].node(),
+ moveinactive=False)
hg.update(repo, p.rev())
+ bmupdate(p.node())
displayer.show(p)
return 0
else:
for p in parents:
displayer.show(p)
@@ -1307,11 +1312,14 @@
if not children:
ui.warn(_('no non-obsolete children\n'))
return 1
if len(children) == 1:
c = children[0]
+ bmupdate = _bookmarksupdater(repo, wparents[0].node(),
+ moveinactive=False)
hg.update(repo, c.rev())
+ bmupdate(c.node())
displayer.show(c)
return 0
else:
for c in children:
displayer.show(c)
new file mode 100644
@@ -0,0 +1,239 @@
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > hgext.rebase=
+ > hgext.graphlog=
+ > EOF
+ $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH
+
+ $ 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 prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [0] added a
+ $ hg log -G
+ o changeset: 1:6e742c9127b3
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ @ changeset: 0:a154386e50d1
+ bookmark: mark
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ touch c
+ $ hg add c
+ $ hg commit -m 'added c'
+ created new head
+ $ hg log -G
+ @ changeset: 2:be36db4d1345
+ | bookmark: mark
+ | tag: tip
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [0] added a
+ $ hg log -G
+ o changeset: 2:be36db4d1345
+ | tag: tip
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ @ changeset: 0:a154386e50d1
+ bookmark: mark
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg up
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ updating bookmark mark
+ $ hg log -G
+ @ changeset: 2:be36db4d1345
+ | bookmark: mark
+ | tag: tip
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ touch d
+ $ hg add d
+ $ hg commit -m 'added d'
+ $ hg log -G
+ @ changeset: 3:606c12292ffd
+ | bookmark: mark
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added d
+ |
+ o changeset: 2:be36db4d1345
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [2] added c
+ $ hg log -G
+ o changeset: 3:606c12292ffd
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added d
+ |
+ @ changeset: 2:be36db4d1345
+ | bookmark: mark
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [3] added d
+ $ hg log -G
+ @ changeset: 3:606c12292ffd
+ | bookmark: mark
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added d
+ |
+ o changeset: 2:be36db4d1345
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg bookmark -r2 no-move
+ $ hg prev
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [2] added c
+ $ hg log -G
+ o changeset: 3:606c12292ffd
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added d
+ |
+ @ changeset: 2:be36db4d1345
+ | bookmark: mark
+ | bookmark: no-move
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg next
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ [3] added d
+ $ hg log -G
+ @ changeset: 3:606c12292ffd
+ | bookmark: mark
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added d
+ |
+ o changeset: 2:be36db4d1345
+ | bookmark: no-move
+ | parent: 0:a154386e50d1
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added c
+ |
+ | o changeset: 1:6e742c9127b3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: added b
+ |
+ o changeset: 0:a154386e50d1
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: added a
+
+ $ hg bookmarks
+ * mark 3:606c12292ffd
+ no-move 2:be36db4d1345