[PATCH evolve-ext] evolve: current bookmark wrongly moving during prune (issue4559)

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed May 13 18:59:11 CDT 2015



On 05/13/2015 10:04 AM, Laurent Charignon wrote:
> # HG changeset patch
> # User Laurent Charignon <lcharignon at fb.com>
> # Date 1431532047 25200
> #      Wed May 13 08:47:27 2015 -0700
> # Node ID 3dd9da52dd375267fc109cedbe908b46dabe6960
> # Parent  5e82d78f5872c9503d7b6691c594a13794a9b4a4
> evolve: current bookmark wrongly moving during prune (issue4559)

pushed to main after a couple of changes

>
> Before this patch: prune -r <otherbookmark> also moved the current bookmark
> eventhough it was not related to the pruned changes.
> This patch fixes it and adds two tests to catch regressions.
>
> diff --git a/hgext/evolve.py b/hgext/evolve.py
> --- a/hgext/evolve.py
> +++ b/hgext/evolve.py
> @@ -913,12 +913,8 @@
>       """Return a callable update(newid) updating the current bookmark
>       and bookmarks bound to oldid to newid.
>       """
> -    bm = bmactive(repo)
>       def updatebookmarks(newid):
>           dirty = False
> -        if bm:
> -            repo._bookmarks[bm] = newid
> -            dirty = True
>           oldbookmarks = repo.nodebookmarks(oldid)
>           if oldbookmarks:
>               for b in oldbookmarks:
> diff --git a/tests/test-prune.t b/tests/test-prune.t
> --- a/tests/test-prune.t
> +++ b/tests/test-prune.t
> @@ -317,3 +317,69 @@
>             longer length:              1
>             median length:              1
>             mean length:                1
> +
> +  $ mkcommit rg
> +  created new head
> +  $ hg bookmark rg
> +  $ hg up 10
> +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> +  (leaving bookmark rg)
> +  $ hg bookmark r10
> +  $ hg log -G
> +  o  11:cd0038e05e1b[rg] (stable/draft) add rg
> +  |
> +  | @  10:ff43616e5d0f[B r10] (stable/draft) r10
> +  |/
> +  o  8:d62d843c9a01[] (stable/draft) r8
> +  |
> +  o  7:e7d9710d9fc6[] (stable/draft) r7
> +  |
> +  o    3:2b6d669947cd[] (stable/draft) r3
> +  |\
> +  | o  2:fa942426a6fd[] (stable/draft) r2
> +  | |
> +  o |  1:66f7d451a68b[] (stable/draft) r1
> +  |/
> +  o  0:1ea73414a91b[] (stable/draft) r0
> +
> +  $ hg prune 11
> +  1 changesets pruned
> +  $ hg log -G
> +  @  10:ff43616e5d0f[B r10] (stable/draft) r10
> +  |
> +  o  8:d62d843c9a01[rg] (stable/draft) r8
> +  |
> +  o  7:e7d9710d9fc6[] (stable/draft) r7
> +  |
> +  o    3:2b6d669947cd[] (stable/draft) r3
> +  |\
> +  | o  2:fa942426a6fd[] (stable/draft) r2
> +  | |
> +  o |  1:66f7d451a68b[] (stable/draft) r1
> +  |/
> +  o  0:1ea73414a91b[] (stable/draft) r0
> +

> +Pruning r10 should move the active bookmarks below

I've dropped that second tests, it is redundant with pre-existing test 
and its result is very confusing because the prune changeset is kep 
visible by a local-tag.

> +
> +  $ hg prune 10
> +  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> +  (leaving bookmark r10)

However, you just uncovered another bug. Prune deactivate the active 
bookmark.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list