[PATCH 2 of 5] resolve: suggest the next action

Gregory Szorc gregory.szorc at gmail.com
Sat Dec 26 12:12:40 CST 2015



> On Dec 24, 2015, at 14:03, timeless <timeless at mozdev.org> wrote:
> 
> # HG changeset patch
> # User timeless <timeless at mozdev.org>
> # Date 1450985144 0
> #      Thu Dec 24 19:25:44 2015 +0000
> # Node ID b37f41464819f05f3708e80eefe91fa9fb52f536
> # Parent  99bb0f0a91660f1ec6aa355221c64e6349a1836a
> resolve: suggest the next action
> 
> Expose afterresolvedstates to allow graft and similar to
> suggest a message when resolving results in no unresolved
> files.

I like what this series is doing!

There has been talk (and perhaps even a wiki *Plan page) to implement "hg continue" (and presumably "hg abort") which is an automagical "continue interrupted operation" command. I think this series gets us one step closer, so I don't see it being incompatible with "hg continue" unless there is a concern over output consistency.

> 
> If there isn't a matching state in afterresolvedstates,
> then if verbose, suggest commiting.
> 
> diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
> --- a/mercurial/cmdutil.py
> +++ b/mercurial/cmdutil.py
> @@ -3361,6 +3361,17 @@
>         if clearable and repo.vfs.exists(f):
>             util.unlink(repo.join(f))
> 
> +afterresolvedstates = [
> +    ]
> +
> +def checkafterresolved(repo):
> +    contmsg = _("continue: %s\n")
> +    for f, msg in afterresolvedstates:
> +        if repo.vfs.exists(f):
> +            repo.ui.warn(contmsg % msg)
> +            return
> +    repo.ui.note(contmsg % _("hg commit"))
> +
> class dirstateguard(object):
>     '''Restore dirstate at unexpected failure.
> 
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -6010,6 +6010,7 @@
>     driverresolvedf = list(ms.driverresolved())
>     if not unresolvedf and not driverresolvedf:
>         ui.status(_('(no more unresolved files)\n'))
> +        cmdutil.checkafterresolved(repo)
>     elif not unresolvedf:
>         ui.status(_('(no more unresolved files -- '
>                     'run "hg resolve --all" to conclude)\n'))
> diff --git a/tests/test-backout.t b/tests/test-backout.t
> --- a/tests/test-backout.t
> +++ b/tests/test-backout.t
> @@ -714,6 +714,7 @@
>   my foo at b71750c4b0fd+ other foo at a30dd8addae3 ancestor foo at 913609522437
>    premerge successful
>   (no more unresolved files)
> +  continue: hg commit
>   $ hg status
>   M foo
>   ? foo.orig
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list