[PATCH evolve-ext] uncommit: abort when rev specifies the current changeset

Pierre-Yves David pierre-yves.david at ens-lyon.org
Sat Nov 1 08:52:23 CDT 2014



On 10/29/2014 01:07 AM, Nathan Goldbaum wrote:
> # HG changeset patch
> # User Nathan Goldbaum <ngoldbau at ucsc.edu>
> # Date 1414544788 25200
> #      Tue Oct 28 18:06:28 2014 -0700
> # Node ID 34989d80484df48893be948ff0a47dd33aaeaf2e
> # Parent  b7d85cd8ec7bd5a4ba5a61d156745269a999450b
> uncommit: abort when rev specifies the current changeset
>
> The uncommit command now fails when the rev argument indicates the current
> changeset. Previously this aborted in the changeset obsolescence machinery when
> the current commit tries to obsolete itself.
>
> Using the rev argument like this indicates a misunderstanding, so printing an
> uncommit-specific error should make it easier to understand what went wrong.

The intend looks good. We should probably check for both p1 and p2. (not 
just p1).

The message is a bit cryptic to me.

    abort: cannot reapply changes to the current changeset

We should probably mention "uncommit" and "parent" in the error. Simple 
proposal:

   abort: uncommit to parent make no sense

>
> diff -r b7d85cd8ec7b -r 34989d80484d hgext/evolve.py
> --- a/hgext/evolve.py	Sat Oct 25 22:25:42 2014 -0400
> +++ b/hgext/evolve.py	Tue Oct 28 18:06:28 2014 -0700
> @@ -1979,6 +1979,9 @@
>           rev = None
>           if opts.get('rev'):
>               rev = scmutil.revsingle(repo, opts.get('rev'))
> +            if repo[None].p1() == rev:
> +                raise util.Abort(_('cannot reapply changes to the current '
> +                                   'changeset'))
>
>           # Recommit the filtered changeset
>           tr = repo.transaction('uncommit')
> diff -r b7d85cd8ec7b -r 34989d80484d tests/test-uncommit.t
> --- a/tests/test-uncommit.t	Sat Oct 25 22:25:42 2014 -0400
> +++ b/tests/test-uncommit.t	Tue Oct 28 18:06:28 2014 -0700
> @@ -347,6 +347,9 @@
>     $ hg cat b --rev 0
>     b: no such file in rev 07f494440405
>     [1]
> +  $ hg uncommit --rev . b
> +  abort: cannot reapply changes to the current changeset
> +  [255]
>     $ hg uncommit --rev 0 b
>     $ hg cat b --rev .
>     b: no such file in rev 5b27f6b17da2
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list