[PATCH evolve-ext] uncommit: abort when rev specifies the current changeset
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat Nov 1 13:52:23 UTC 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