# HG changeset patch # User Kevin Bullock # Date 1363487804 18000 # Node ID 99b78269a2ec850359fb7de8aca385008924a0ab # Parent b616c9b8001d8377c39bc6bc1fd595de56f263f2 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) diff -r b616c9b8001d -r 99b78269a2ec mercurial/commands.py --- 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: diff -r b616c9b8001d -r 99b78269a2ec tests/test-bookmarks.t --- 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 @