# HG changeset patch # User Laurent Charignon # Date 1431995078 25200 # Node ID 16017e1bb2a1796c999a6ecb4ac8b8da27dfc6e4 # Parent f455ce2a3587f9f298aae61665be0027843bcfeb prune: with active bookmark should stay active hg prune with an active bookmark was deactivating the bookmark after the prune. This patch makes sure that if a bookmark was active before a "prune" operation (except prune -B) then the bookmark stays activate afterwards. diff -r f455ce2a3587 -r 16017e1bb2a1 hgext/evolve.py --- a/hgext/evolve.py Mon May 18 13:58:57 2015 -0400 +++ b/hgext/evolve.py Mon May 18 17:24:38 2015 -0700 @@ -1808,8 +1808,20 @@ newnode = newnode.parents()[0] if newnode.node() != wdp.node(): + bookactive = bmactive(repo) + # Active bookmark that we don't want to delete (with -B option) + # we deactivate and move it before the update and reactivate it + # after + movebookmark = bookactive and not bookmark + if movebookmark: + bookmarks.deactivate(repo) + repo._bookmarks[bookactive] = newnode.node() + repo._bookmarks.write() commands.update(ui, repo, newnode.rev()) ui.status(_('working directory now at %s\n') % newnode) + if movebookmark: + bookmarks.activate(repo, bookactive) + # update bookmarks if bookmark: _deletebookmark(ui, marks, bookmark) diff -r f455ce2a3587 -r 16017e1bb2a1 tests/test-prune.t --- a/tests/test-prune.t Mon May 18 13:58:57 2015 -0400 +++ b/tests/test-prune.t Mon May 18 17:24:38 2015 -0700 @@ -40,8 +40,9 @@ $ hg prune --user blah --date '1979-12-15' . 1 changesets pruned 0 files updated, 0 files merged, 1 files removed, 0 files unresolved - (leaving bookmark BABAR) working directory now at 47d2a3944de8 + $ hg bookmark + * BABAR 3:47d2a3944de8 $ hg debugobsolete 9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'} @@ -50,6 +51,7 @@ $ hg prune 1 1 changesets pruned 2 new unstable changesets + $ hg book -i BABAR $ hg debugobsolete 9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'} 7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {1f0dee641bb7258c56bd60e93edfa2405381c41e} (*) {'user': 'test'} (glob)