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

Re: [PATCH] merge & sequencer: turn "Conflicts:" hint into a comment

From
Jeff King <peff@peff.net>
Date
Oct 26, 2014, 18:59 UTC
Message-ID
<20141026185909.GC18144@peff.net>
In-Reply-To
<xmqqr3xxf9ey.fsf_-_@gitster.dls.corp.google.com>
On Fri, Oct 24, 2014 at 02:24:37PM -0700, Junio C Hamano wrote:
Show 10 quoted lines
> Just like other hints such as "Change to be committed" we show in
> the editor to remind the committer what paths were involved in the
> resulting commit to improve their log message, this section is
> merely a reminder.  Traditionally, it was not made into comments
> primarily because it has to be generated outside wt-status
> infrastructure, and secondary it was meant as a bit stronger
> reminder than the rest (i.e. explaining how you resolved conflicts
> is much more important than mentioning what you did to every paths
> involved in the commit), but that still does not make this hint a
> hint, which should be commented out by default.
Yay. I like this new behavior much better.

Just to play devil's advocate for a moment, though, are we hurting people who find it useful to record that information in the commit message?

For the most part, combined-diff (and --cc) will show the interesting cases anyway. But if you take a whole file from one side of the merge, then there is nothing interesting for diff to show. Do people still want to get that more complete list of potentially interesting files? And if so, how do they do it? I think there really isn't a great way besides repeating the merge.

If that is the only casualty, I think it is probably a net-win. We may want better tooling around viewing the merge later, but that can wait until somebody steps up with a real use case (because even that conflict list may not be completely what they want; they may also want the list of files that were auto-merged successfully, for example). And I think there was work recently on a diff view for merge commits that involved recreating the merge (I do not remember the details, though).

Show 18 quoted lines
> diff --git a/sequencer.c b/sequencer.c
> index 0f84bbe..1d97da3 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -291,13 +291,12 @@ void append_conflicts_hint(struct strbuf *msgbuf)
>  {
>  	int i;
>  
> -	strbuf_addstr(msgbuf, "\nConflicts:\n");
> +	strbuf_addch(msgbuf, '\n');
> +	strbuf_commented_addf(msgbuf, "Conflicts:\n");
>  	for (i = 0; i < active_nr;) {
>  		const struct cache_entry *ce = active_cache[i++];
>  		if (ce_stage(ce)) {
> -			strbuf_addch(msgbuf, '\t');
> -			strbuf_addstr(msgbuf, ce->name);
> -			strbuf_addch(msgbuf, '\n');
> +			strbuf_commented_addf(msgbuf, "\t%s\n", ce->name);

This ends up adding a space followed by a tab. Besides being redundant, it makes my editor highlight it as a whitespace error. I realize this is a pretty minor nit, though.

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 11 in “builtin/merge.c: drop a parameter that is never used”
  1. builtin/merge.c: drop a parameter that is never usedJunio C Hamano, Oct 24, 2014
  2. Jonathan NiederOct 24, 2014
  3. merge & sequencer: unify codepaths that write "Conflicts:" hintJunio C Hamano, Oct 24, 2014
  4. merge & sequencer: turn "Conflicts:" hint into a commentJunio C Hamano, Oct 24, 2014
  5. Jeff KingOct 26, 2014
  6. Junio C HamanoOct 27, 2014
  7. Junio C HamanoOct 27, 2014
  8. Jeff KingOct 28, 2014
  9. Christian CouderOct 28, 2014
  10. Jonathan NiederOct 27, 2014
  11. Jeff KingOct 28, 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.