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

Re: git cherry-pick conflict error message is deceptive when cherry-picking multiple commits

From
Stephen Morton <stephen.c.morton@gmail.com>
Date
Jul 27, 2016, 14:15 UTC
Message-ID
<CAH8BJxFvyEDuj-mm=N=ca3kxysopaBpro-HsuL-HZehqE_nxDA@mail.gmail.com>
In-Reply-To
<CAH8BJxH0_RhmDaHWBkFg6QP7WWucUtPSQfsAemdVWkTzN42MPw@mail.gmail.com>

Here is my patch then. (Personally, I would add some capitalization and punctuation, but I didn't see much of that in the existing code.) I'm not a regular pull-requester, do I do that, or can somebody else handle that for me?

diff --git a/sequencer.c b/sequencer.c
index cdfac82..ce06876 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -176,7 +176,8 @@ static void print_advice(int show_hint, struct
replay_opts *opts)
                else
                        advise(_("after resolving the conflicts, mark
the corrected paths\n"
                                 "with 'git add <paths>' or 'git rm <paths>'\n"
-                                "and commit the result with 'git commit'"));
+                                "then continue the %s with 'git %s
--continue'\n"
+                                "or cancel the %s operation with 'git
%s --abort'" ),  action_name(opts), action_name(opts),
action_name(opts), action_name(opts));
        }
 }


Stephen



On Tue, Jul 26, 2016 at 4:44 PM, Stephen Morton
<stephen.c.morton@gmail.com> wrote:
> On Tue, Jul 26, 2016 at 4:30 PM, Jeff King <peff@peff.net> wrote:
>> On Tue, Jul 26, 2016 at 01:18:55PM -0700, Stefan Beller wrote:
>>
>>> > Would it be possible to expand the hint message to tell users to run
>>> > 'git cherry-pick --continue'
>>>
>>> Instead of expanding I'd go for replacing?
>>>
>>> I'd say the user is tempted for 2 choices,
>>> a) aborting (for various reasons)
>>> b) fix and continue.
>>
>> Yeah, I'd agree with this.
>>
>> I think that advice comes from a time when you could only cherry-pick a
>> single commit. These days you can do several in a single run, and that's
>> why "git cherry-pick --continue" was invented.
>>
>> So I think we would need to make sure that the "cherry-pick --continue"
>> advice applies in both cases (and that we do not need to give different
>> advice depending on whether we are in a single or multiple cherry-pick).
>>
>> I did some basic tests and it _seems_ to work to use --continue in
>> either case. Probably due to 093a309 (revert: allow cherry-pick
>> --continue to commit before resuming, 2011-12-10), but I didn't dig.
>>
>> -Peff
>
> The 'git status' text for a rebase/am/cherry-pick is
>
>     fix conflicts and then run "git <op> --continue"
>     use "git <op> --skip" to skip this patch"
>     use "git <op> --abort" to cancel the <op> operation
>
> (The --cancel text varies a bit actually, but that's the gist of it.)
>
> The rebase/cherry-pick conflict case should really indicate how to
> mark the conflict as resolved as that's the specific situation the
> user is in. I don't know if there are guidelines to hint line length,
> or how many actions should be on one line but if the above text was
> changed to have this as the "fix" text, possibly over two lines, I
> think that would do it.
>
>     fix conflicts with 'git add <paths>' or 'git rm <paths>'" and then
> run "git <op> --continue"
>
> Stephen
Previous: Stephen MortonNext: Johannes Schindelin
Message 5 of 9 in “git cherry-pick conflict error message is deceptive when cherry-picking multiple commits”
  1. Stephen MortonJul 26, 2016
  2. Stefan BellerJul 26, 2016
  3. Jeff KingJul 26, 2016
  4. Stephen MortonJul 26, 2016
  5. Stephen MortonJul 27, 2016
  6. Johannes SchindelinJul 27, 2016
  7. Stephen MortonJul 27, 2016
  8. Johannes SchindelinAug 1, 2016
  9. Stephen MortonAug 10, 2016

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.