[PATCH evolve] prune: update to successor rather than parent when killing '.'

Pierre-Yves David pierre-yves.david at ens-lyon.org
Fri Jan 10 19:53:05 CST 2014


On 01/09/2014 02:37 AM, Dan Villiom Podlaski Christiansen wrote:
> # HG changeset patch
> # User Dan Villiom Podlaski Christiansen <dan at cabo.dk>
> # Date 1389263595 -3600
> #      Thu Jan 09 11:33:15 2014 +0100
> # Node ID 5d03689228e8b7006f22d2c6da219f9136a64421
> # Parent  d5e25eaaee317a4bcf238b3adba7526d807dd0cc
> prune: update to successor rather than parent when killing '.'

The change looks great and the test sound good, Thanks!
But if you expect me to accept patches with a one line description, I 
need to work on my reputation. Can you extend it a bit please?

>
> diff --git a/hgext/evolve.py b/hgext/evolve.py
> --- a/hgext/evolve.py
> +++ b/hgext/evolve.py
> @@ -1437,11 +1437,19 @@ def cmdprune(ui, repo, *revs, **opts):
>   
>           # informs that changeset have been pruned
>           ui.status(_('%i changesets pruned\n') % len(precs))
> -        # update to an unkilled parent
> +
>           wdp = repo['.']
> -        newnode = wdp
> -        while newnode.obsolete():
> -            newnode = newnode.parents()[0]
> +
> +        if len(sucs) == 1 and len(precs) == 1 and wdp in precs:
> +            # '.' killed, so update to the successor
> +            newnode = sucs[0]
> +        else:
> +            # update to an unkilled parent
> +            newnode = wdp
> +
> +            while newnode.obsolete():
> +                newnode = newnode.parents()[0]
> +
>           if newnode.node() != wdp.node():
>               commands.update(ui, repo, newnode.rev())
>               ui.status(_('working directory now at %s\n') % newnode)
> diff --git a/tests/test-prune.t b/tests/test-prune.t
> --- a/tests/test-prune.t
> +++ b/tests/test-prune.t
> @@ -115,8 +115,12 @@ Check successors addition
>   
>   one old, one new
>   
> +  $ hg up 'desc("add ee")'
> +  4 files updated, 0 files merged, 4 files removed, 0 files unresolved
>     $ hg prune 'desc("add ee")' -s 'desc("add nE")'
>     1 changesets pruned
> +  4 files updated, 0 files merged, 4 files removed, 0 files unresolved
> +  working directory now at 6e8148413dd5
>     $ hg debugobsolete
>     9d206ffc875e1bc304590549be293be36821e66c 0 {'date': '314064000 0', 'user': 'blah'} (glob)
>     7c3bad9141dcb46ff89abf5f61856facd56e476c 0 {'date': '*', 'user': 'test'} (glob)
> @@ -231,4 +235,3 @@ yoinked from test-mq-strip.t
>     $ hg id -ir 6:2702dd0c91e7
>     abort: unknown revision '2702dd0c91e7'!
>     [255]
> -
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel



More information about the Mercurial-devel mailing list