[PATCH] update: add a hint when aborting for uncommitted changes

Martin von Zweigbergk martinvonz at google.com
Wed Apr 5 16:41:06 EDT 2017


On Wed, Apr 5, 2017 at 1:39 PM, Pierre-Yves David
<pierre-yves.david at ens-lyon.org> wrote:
>
>
> On 04/05/2017 05:17 PM, Martin von Zweigbergk wrote:
>>
>>
>>
>> On Apr 5, 2017 04:01, "Pierre-Yves David"
>> <pierre-yves.david at ens-lyon.org <mailto:pierre-yves.david at ens-lyon.org>>
>> wrote:
>>
>>
>>
>>     On 04/05/2017 07:29 AM, Martin von Zweigbergk wrote:
>>
>>         On Tue, Apr 4, 2017 at 9:40 AM, Pierre-Yves David
>>         <pierre-yves.david at ens-lyon.org
>>         <mailto:pierre-yves.david at ens-lyon.org>> wrote:
>>
>>             # HG changeset patch
>>             # User Pierre-Yves David <pierre-yves.david at ens-lyon.org
>>             <mailto:pierre-yves.david at ens-lyon.org>>
>>
>>             # Date 1491225382 -7200
>>             #      Mon Apr 03 15:16:22 2017 +0200
>>             # Node ID 32116e1ad0d93b48d344f317899b974628310850
>>             # Parent  2632df096fc0ac7582382b1f94ea4b9ad0bce8f2
>>             # EXP-Topic update.mergehint
>>             # Available At
>>             https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
>>             <https://www.mercurial-scm.org/repo/users/marmoute/mercurial/>
>>             #              hg pull
>>             https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
>>             <https://www.mercurial-scm.org/repo/users/marmoute/mercurial/>
>>             -r 32116e1ad0d9
>>             update: add a hint when aborting for uncommitted changes
>>
>>             Plain abort is a bit frustrating for the user. We now point
>>             at the '--merge' option
>>             in the hint. This is similar to what evolve 'next' and
>>             'prev' do. Not that
>>             evolution use a more direct hint "(do you want --merge)",
>>             but it might be a bit
>>             too error prone for new user.
>>
>>             diff --git a/mercurial/hg.py b/mercurial/hg.py
>>             --- a/mercurial/hg.py
>>             +++ b/mercurial/hg.py
>>             @@ -761,7 +761,8 @@ def updatetotally(ui, repo, checkout, br
>>                          ret = _clean(repo, checkout)
>>                      else:
>>                          if updatecheck == 'abort':
>>             -                cmdutil.bailifchanged(repo, merge=False)
>>             +                hint = _('to merge these changes with
>>             destination, use --merge')
>>
>>
>>         The existing messages say "commit or update --clean to discard
>>         changes". I sent a patch to also suggest --merge in the
>>         updatecheck=linear case (i.e. the legacy and default case), but we
>>         ended up dropping that because it's hard to recover from the merge
>>         state.
>>
>>
>>     Note that we could easily build a `hg update --abort` that makes it
>>     easy to recover.
>>
>>
>> I didn't realize we kept the uncommitted file content around somewhere
>> so it could be restored. But I know you can re-resolve a file, so I
>> should have figured that out.
>>
>>
>>
>>         I don't see a reason that we should recommend something
>>         different when updatecheck=abort. Using a hint of "commit or
>> update
>>         --clean to discard changes" seems completely uncontroversial.
>> Should
>>         we do that instead? Or should we start recommending --merge (for
>>         both
>>         these cases) despite the risk? I'm not sure.
>>
>>
>>     My usecase for "abort" is "I do not want to move away with
>>     uncommitted change without realizing it". They are a good chance I
>>     actually wanted to commit or amend the change locally. I'm using the
>>     "uncommited change" in prev/next the same way. However they also are
>>     many case where I actually want the merge to happens (and I'll use
>>     --merge).
>>     In such case the hint with --merge in it provides me with a clear
>>     visual hint that the abort is not a bit deal and that they are an
>>     easy way forward.
>>
>>     The hard abort with no hint looks like something serious with no
>>     easy solution is happening to my repository.
>>
>>     In my current opinion is that we should:
>>     1) get `hg abort --abort`
>>
>>
>> Yes, please! (You obviously meant "hg update --abort" here too.)
>
>
> So, the usual question comes up again. Who should be doing it o:-) Since you
> have spend quite some time in this area do you want to do it? This is
> probably about ½ a day of work.

Maybe. I won't have time before my vacation, which starts in two days
and lasts for two weeks. I may look into it after. It probably won't
be right after, though.

>
> Cheers,
>
> --
> Pierre-Yves David


More information about the Mercurial-devel mailing list