git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC 2/3] merge: Add hints to tell users about "git merge --abort"

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 5, 2014, 18:29 UTC
Message-ID
<xmqqa9d4ijmu.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CADgNjak3aqPDV0iZYc8b6QJ9y+6bUd28n0UJOm6WjufQhjfuwA@mail.gmail.com>
Andrew Wong <andrew.kw.w@gmail.com> writes:
Show 30 quoted lines
> On Wed, Feb 26, 2014 at 3:38 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> Andrew Wong wrote:
>>
>>> --- a/builtin/merge.c
>>> +++ b/builtin/merge.c
>>> @@ -909,7 +909,8 @@ static int suggest_conflicts(int renormalizing)
>>>       fclose(fp);
>>>       rerere(allow_rerere_auto);
>>>       printf(_("Automatic merge failed; "
>>> -                     "fix conflicts and then commit the result.\n"));
>>> +                     "fix conflicts and then commit the result.\n"
>>> +                     "To abort the merge, use \"git merge --abort\".\n"));
>>
>> Seems reasonable, but I worry about the command growing too noisy.
>>
>> Could this be guarded by an advice.<something> setting?  (See advice.*
>> in git-config(1) for what I mean.)
>
> I was planning to use advice.resolveConflict, but as I went through
> merge.c, I noticed there could be a few other situations where we
> could print out the same message:
> 1. when prepare_to_commit() fails, due to hook error, editor error, or
> empty commit message
> 2. "git commit --no-commit"
>
> This means contexts are no longer only about "resolving conflict", so
> I was thinking of renaming advice.resolveConflict to something like
> advice.mergeHints.
>
> Any thoughts?

I have no strong opinion on the naming, other than that I doubt this particular new "how to abort" message is worth the headache associated with the "rename" which involves transition planning of deprecating the old, supporting both for a while and then removing the old.

The existing message above in "suggest-conflicts" is about hinting the user to first resolve the conflict before attempting to continue, and that is perfectly in line with the existing use of advice.resolveConfict in die_conflict() in git-pull that tells the user there is an unresolved conflict.

On the other hand, the additional "how to abort" message does not have to be limited to "you have conflicted paths in the index" case.

If the user said "git merge" while another "git merge" is still outstanding, we would want to say "You have not concluded your previous merge" and die, and you presumably want to add the same "how to abort" message there. Such a codepath is unlikely to be covered by existing advice.resolveConflict, and it sounds more natural, at least to me, to use a separate variable to squelch only the new "how to abort" part.

Previous: Andrew WongNext: Andrew Wong
Message 10 of 33 in “[RFC 0/3] Make git more user-friendly during a merge conflict”
  1. Andrew WongFeb 26, 2014
  2. 1/3 wt-status: Make conflict hint message more consistent with other hintsAndrew Wong, Feb 26, 2014
  3. Jonathan NiederFeb 26, 2014
  4. Junio C HamanoFeb 26, 2014
  5. Andrew WongFeb 26, 2014
  6. 2/3 merge: Add hints to tell users about "git merge --abort"Andrew Wong, Feb 26, 2014
  7. Jonathan NiederFeb 26, 2014
  8. Andrew WongFeb 26, 2014
  9. Andrew WongMar 5, 2014
  10. Junio C HamanoMar 5, 2014
  11. Andrew WongMar 5, 2014
  12. Junio C HamanoMar 5, 2014
  13. Matthieu MoyMar 5, 2014
  14. 3/3 reset: Change the default behavior to use "--merge" during a mergeAndrew Wong, Feb 26, 2014
  15. Matthieu MoyFeb 26, 2014
  16. Andrew WongFeb 26, 2014
  17. Jonathan NiederFeb 26, 2014
  18. Andrew WongFeb 26, 2014
  19. Matthieu MoyFeb 26, 2014
  20. Andrew WongFeb 27, 2014
  21. Junio C HamanoFeb 26, 2014
  22. Andrew WongMar 11, 2014
  23. Jonathan NiederFeb 26, 2014
  24. Stephen LeakeFeb 28, 2014
  25. Charles BaileyFeb 28, 2014
  26. David KastrupFeb 28, 2014
  27. Stephen LeakeFeb 28, 2014
  28. David KastrupFeb 28, 2014
  29. Stephen LeakeFeb 28, 2014
  30. David KastrupFeb 28, 2014
  31. Stephen LeakeMar 1, 2014
  32. Matthieu MoyMar 1, 2014
  33. Stephen LeakeMar 1, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.