[PATCH evolve-ext] prune: with active bookmark should stay active

Pierre-Yves David pierre-yves.david at ens-lyon.org
Tue May 19 00:46:16 CDT 2015



On 05/18/2015 07:34 PM, Laurent Charignon wrote:
> # HG changeset patch
> # User Laurent Charignon <lcharignon at fb.com>
> # Date 1431995078 25200
> #      Mon May 18 17:24:38 2015 -0700
> # Node ID a7022d489e2a3b2906fd9c1f9c9594b73ff653aa
> # Parent  0e2eb196923ab8f2735dfebae018ef37e6ef1808
> 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
> then the bookmark stays activate afterwards.
>
> diff --git a/hgext/evolve.py b/hgext/evolve.py
> --- a/hgext/evolve.py
> +++ b/hgext/evolve.py
> @@ -1880,7 +1880,6 @@
>               while newnode in precs or newnode.obsolete():
>                   newnode = newnode.parents()[0]
>
> -
>           if newnode.node() != wdp.node():
>               if opts.get('keep', False):
>                   # This is largely the same as the implementation in
> @@ -1902,7 +1901,13 @@
>                   repo.dirstate.rebuild(newnode.node(), newnode.manifest(), changedfiles)
>                   repo.dirstate.write()
>               else:
> +                bookactive = bmactive(repo)
>                   commands.update(ui, repo, newnode.rev())
> +                if bookactive is not None:
> +                    repo.ui.status(_("(reactivating bookmark %s)\n")
> +                                    % bookactive)
> +                    bookmarks.activate(repo, bookactive)
> +

This is going to provide confusing output. We should focus on having the 
bookmark not disabled instead.

>                   ui.status(_('working directory now at %s\n') % newnode)
>           # update bookmarks
>           if bookmark:
> diff --git a/tests/test-prune.t b/tests/test-prune.t
> --- a/tests/test-prune.t
> +++ b/tests/test-prune.t
> @@ -40,8 +40,18 @@
>     $ hg prune --user blah --date '1979-12-15' .
>     0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>     (leaving bookmark BABAR)
> +  (reactivating bookmark BABAR)

^ confusing output. should be

-    (leaving bookmark BABAR)


>     working directory now at 47d2a3944de8
>     1 changesets pruned
> +  $ hg log -G
> +  @  3:47d2a3944de8[BABAR] (stable/draft) add d
> +  |
> +  o  2:4538525df7e2[] (stable/draft) add c
> +  |
> +  o  1:7c3bad9141dc[] (stable/draft) add b
> +  |
> +  o  0:1f0dee641bb7[] (stable/public) add a
> +

Do you want "hg bookmarks" instead to see the "active" status?

>     $ hg debugobsolete
>     9d206ffc875e1bc304590549be293be36821e66c 0 {47d2a3944de8b013de3be9578e8e344ea2e6c097} (Sat Dec 15 00:00:00 1979 +0000) {'user': 'blah'}
>
> @@ -58,6 +68,7 @@
>
>     $ hg prune 2:
>     0 files updated, 0 files merged, 3 files removed, 0 files unresolved
> +  (reactivating bookmark BABAR)

even more confusing output.

>     working directory now at 1f0dee641bb7
>     2 changesets pruned
>     $ hg debugobsolete
> @@ -87,6 +98,7 @@
>     $ mkcommit ee
>     $ hg up 0
>     0 files updated, 0 files merged, 4 files removed, 0 files unresolved
> +  (leaving bookmark BABAR)
>     $ mkcommit nB
>     created new head
>     $ mkcommit nC
> @@ -102,7 +114,7 @@
>     |
>     o  9:6f6f25e4f748[] (stable/draft) add nB
>     |
> -  | o  8:bb5e90a7ea1f[] (stable/draft) add ee
> +  | o  8:bb5e90a7ea1f[BABAR] (stable/draft) add ee

Where does these changes comes from ? If they are legit, can we get them 
handled before the actual fix to have clearer test changes?


>     | |
>     | o  7:00ded550b1e2[] (stable/draft) add dd
>     | |
> @@ -110,7 +122,7 @@
>     | |
>     | o  5:814c38b95e72[] (stable/draft) add bb
>     |/
> -  o  0:1f0dee641bb7[BABAR] (stable/public) add a
> +  o  0:1f0dee641bb7[] (stable/public) add a
>
>
>   one old, one new
> @@ -136,13 +148,13 @@
>     |
>     o  9:6f6f25e4f748[] (stable/draft) add nB
>     |
> -  | o  7:00ded550b1e2[] (stable/draft) add dd
> +  | o  7:00ded550b1e2[BABAR] (stable/draft) add dd
>     | |
>     | o  6:354011cd103f[] (stable/draft) add cc
>     | |
>     | o  5:814c38b95e72[] (stable/draft) add bb
>     |/
> -  o  0:1f0dee641bb7[BABAR] (stable/public) add a
> +  o  0:1f0dee641bb7[] (stable/public) add a
>
>
>   one old, two new
> @@ -165,11 +177,11 @@
>     |
>     o  9:6f6f25e4f748[] (stable/draft) add nB
>     |
> -  | o  6:354011cd103f[] (stable/draft) add cc
> +  | o  6:354011cd103f[BABAR] (stable/draft) add cc
>     | |
>     | o  5:814c38b95e72[] (stable/draft) add bb
>     |/
> -  o  0:1f0dee641bb7[BABAR] (stable/public) add a
> +  o  0:1f0dee641bb7[] (stable/public) add a
>
>
>   two old, two new (should be denied)
> @@ -274,6 +286,7 @@
>     $ hg prune -B todelete
>     0 files updated, 0 files merged, 0 files removed, 0 files unresolved
>     (leaving bookmark todelete)
> +  (reactivating bookmark todelete)
>     working directory now at d62d843c9a01
>     bookmark 'todelete' deleted
>     1 changesets pruned

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list