bookmarks: allow (re-)activating a bookmark on the current changeset
Allow a bookmark that points to the current changeset to be made the
active bookmark without requiring --force. Previously, this would've
aborted with:
abort: bookmark 'Z' already exists (use -f to force)
--- a/mercurial/commands.py Sat Mar 16 21:21:54 2013 -0500
+++ b/mercurial/commands.py Sat Mar 16 21:36:44 2013 -0500
@@ -811,6 +811,9 @@
def checkconflict(repo, mark, force=False, target=None):
if mark in marks and not force:
if target:
+ if marks[mark] == target and target == cur:
+ # re-activating a bookmark
+ return
anc = repo.changelog.ancestors([repo[target].rev()])
bmctx = repo[marks[mark]]
if bmctx.rev() in anc:
--- a/tests/test-bookmarks.t Sat Mar 16 21:21:54 2013 -0500
+++ b/tests/test-bookmarks.t Sat Mar 16 21:36:44 2013 -0500
@@ -363,6 +363,11 @@
* Z 2:db815d6d32e6
x y 2:db815d6d32e6
+activate bookmark on working dir parent without --force
+
+ $ hg bookmark --inactive Z
+ $ hg bookmark Z
+
test clone
$ hg bookmark -r 2 -i @