[PATCH STABLE] rebase: do not try to reactivate deleted divergent bookmark
Yuya Nishihara
yuya at tcha.org
Sat Feb 15 01:57:53 CST 2014
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1392448759 -32400
# Sat Feb 15 16:19:19 2014 +0900
# Branch stable
# Node ID f2a0a0e76b4cff445c504db68f04582843cd1c72
# Parent 4e41b2fe46ccfb9722e51e23902f7019d286b15d
rebase: do not try to reactivate deleted divergent bookmark
If the currently active bookmark is divergent one, it may be resolved during
rebase. Trying to activate it will raise "KeyError: 'W at diverge'".
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -404,6 +404,9 @@ def rebase(ui, repo, **opts):
if currentbookmarks:
updatebookmarks(repo, targetnode, nstate, currentbookmarks)
+ if activebookmark not in repo._bookmarks:
+ # active bookmark was divergent one and has been deleted
+ activebookmark = None
clearstatus(repo)
ui.note(_("rebase completed\n"))
diff --git a/tests/test-rebase-bookmarks.t b/tests/test-rebase-bookmarks.t
--- a/tests/test-rebase-bookmarks.t
+++ b/tests/test-rebase-bookmarks.t
@@ -85,6 +85,24 @@ Test deleting divergent bookmarks from d
|/
o 0: 'A' bookmarks: Y at diverge
+Do not try to keep active but deleted divergent bookmark
+
+ $ cd ..
+ $ hg clone -q a a4
+
+ $ cd a4
+ $ hg up -q 2
+ $ hg book W at diverge
+
+ $ hg rebase -s W -d .
+ saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg bookmarks
+ W 3:0d3554f74897
+ X 1:6c81ed0049f8
+ Y 2:49cb3485fa0c
+ Z 2:49cb3485fa0c
+
Keep bookmarks to the correct rebased changeset
$ cd ..
More information about the Mercurial-devel
mailing list