Git development
 help / color / mirror / Atom feed
From: "Julia Evans" <julia@jvns.ca>
To: "Junio C Hamano" <gitster@pobox.com>,
	"Julia Evans" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, "Patrick Steinhardt" <ps@pks.im>,
	"Jeff King" <peff@peff.net>,
	"D. Ben Knoble" <ben.knoble@gmail.com>
Subject: Re: [PATCH v4 1/6] doc: add new gitmergeconflicts man page
Date: Mon, 26 Oct 2026 08:35:47 -0400	[thread overview]
Message-ID: <2564bcc2-2f78-4ea2-9b6f-c033e95983d8@app.fastmail.com> (raw)
In-Reply-To: <xmqqtsmc44c1.fsf@gitster.g>



On Fri, Oct 23, 2026, at 3:14 PM, Junio C Hamano wrote:
> "Julia Evans via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
>> Things to potentially improve in future docs revisions:
>>
>> - The explanation of zdiff3 is unsatisfying. It would be good if we
>>   could have a clear example of a case where zdiff3 is helpful and a
>>   case where it's harmful, and if we could give a better sense for
>>   the reasons why users are actually choosing zdiff3 over diff3
>>   (or the reverse) in real life.
>
> Is this a stale comment?  I think you reduced this to just a side
> note that says `shoter but ambiguous`, which is probably good
> enough.

It's not, but I'll delete it anyway because I don't think it's adding much.

>> +[[diff3]]
>> +DIFF3
>> +-----
>> +
>> +By default, Git doesn't include the original code when formatting
>> +a merge conflict. To include the original code, you can set the
>> +configuration option `merge.conflictstyle` to `diff3`.
>> +This extra context can make it much easier to understand what's
>> +happening in a merge conflict.
>> +
>> +Here's an example of what a merge conflict would look like when using
>> +`diff3`. There's an extra section (between `|||||||` and `=======`)
>> +with the original code.
>> +
>> +----
>> +FRUITS = [
>> +    "apple",
>> +<<<<<<< HEAD
>> +    "cherry",
>> +    "mango",
>> +||||||| 1c22e48
>> +	"banana",
>> +	"cherry",
>
> These two should be indented with spaces the same way as all the
> other lines in this list.

Will fix, thanks.

>> +    "mangoooo",
>> +=======
>> +    "banana",
>> +    "mango",
>> +>>>>>>> add-fruit
>> +    "orange",
>> +]
>> +----
>> +
>> +With this view, you can see that both sides fixed a spelling
>> +mistake in "mango", and each removed one fruit to the list.
>
> ", and each removed one from the list", I think.

Thanks, will fix.

>> +This makes it more clear how to resolve the merge conflict: since one
>> +side removed `banana` and one side removed `cherry`, it would probably
>> +make sense to remove both from the list, like this:
>
> The reason why removal becomes the correct resolution is not just
> one side removed, but the fact that the other side did not touch
> what was removed by one side.  The "indifference by the other" is
> what makes one's removal the preferred action by the semantics of
> 3-way merge.
>
> So, let's rewrite the reason a bit more tightly.
>
>     since one side removed `banana` while the other side did not
>     touch, and the same happend to `cherry`, it makes sense to
>     remove both from the list ...

I tried to edit this (like below) but only ended up removing "probably".
But "probably" was there for a reason, since this is a made up example
and in the real world you would really need to apply some judgement
to know what the right thing to do is. I left it as is.

-side removed `banana` and one side removed `cherry`, it would probably
-make sense to remove both from the list, like this:
+side removed `banana` and one side removed `cherry`, it makes sense
+to remove both from the list, like this:

> or somethig like that.
>
> Other than that, I did not see anything questionable in the 6
> patches.

  reply	other threads:[~2026-10-26 12:36 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-24 14:44 [PATCH 0/7] [doc] Add new page on merge conflicts Julia Evans via GitGitGadget
2026-09-24 14:44 ` [PATCH 1/7] [doc] Add new gitmergeconflicts man page Julia Evans via GitGitGadget
2026-09-24 20:36   ` Junio C Hamano
2026-09-24 22:04     ` Junio C Hamano
2026-09-30 13:19   ` Patrick Steinhardt
2026-09-30 19:53     ` Julia Evans
2026-09-30 20:37       ` Junio C Hamano
2026-10-01  5:14         ` Patrick Steinhardt
2026-10-01 12:10           ` Julia Evans
2026-10-02 17:58         ` Junio C Hamano
2026-10-05 16:54       ` Julia Evans
2026-10-05 17:22         ` Junio C Hamano
2026-10-05 19:11           ` Julia Evans
2026-09-24 14:44 ` [PATCH 2/7] [doc] git-merge: link to new merge conflicts guide Julia Evans via GitGitGadget
2026-09-25 16:36   ` D. Ben Knoble
2026-09-25 16:59     ` Julia Evans
2026-09-25 18:19       ` Junio C Hamano
2026-09-25 19:32         ` Ben Knoble
2026-09-25 21:49           ` Junio C Hamano
2026-09-25 19:34       ` Ben Knoble
2026-10-02 17:01       ` Julia Evans
2026-10-02 17:50         ` Junio C Hamano
2026-10-02 18:53           ` Julia Evans
2026-10-02 21:38             ` Junio C Hamano
2026-10-03  2:25         ` D. Ben Knoble
2026-10-03  4:12           ` Junio C Hamano
2026-09-30 13:19   ` Patrick Steinhardt
2026-09-24 14:44 ` [PATCH 3/7] [doc] git-rebase: " Julia Evans via GitGitGadget
2026-09-24 14:44 ` [PATCH 4/7] [doc] git-revert: " Julia Evans via GitGitGadget
2026-09-24 14:44 ` [PATCH 5/7] [doc] git-cherry-pick: " Julia Evans via GitGitGadget
2026-09-25 17:17   ` Junio C Hamano
2026-09-28 20:58     ` Julia Evans
2026-09-28 21:25       ` Junio C Hamano
2026-09-24 14:44 ` [PATCH 6/7] [doc] git-pull: " Julia Evans via GitGitGadget
2026-09-24 14:44 ` [PATCH 7/7] [doc] ignore conflict markers in gitmergeconflicts.adoc Julia Evans via GitGitGadget
2026-10-07 21:21   ` Junio C Hamano
2026-10-09 12:06     ` Julia Evans
2026-09-24 22:20 ` [PATCH 0/7] [doc] Add new page on merge conflicts Junio C Hamano
2026-09-24 23:37   ` Jeff King
2026-09-28 20:41     ` Julia Evans
2026-09-29  1:32       ` Jeff King
2026-09-29  1:56         ` Junio C Hamano
2026-09-25 16:25 ` D. Ben Knoble
2026-10-02 17:39   ` Julia Evans
2026-10-03  2:29     ` D. Ben Knoble
2026-10-05 18:49       ` Julia Evans
2026-10-06 16:53         ` D. Ben Knoble
2026-10-06 17:09           ` D. Ben Knoble
2026-10-09 12:00 ` [PATCH v2 0/6] " Julia Evans via GitGitGadget
2026-10-09 12:00   ` [PATCH v2 1/6] doc: add new gitmergeconflicts man page Julia Evans via GitGitGadget
2026-10-09 17:58     ` Junio C Hamano
2026-10-09 18:53       ` Julia Evans
2026-10-09 21:54         ` Junio C Hamano
2026-10-10  1:45         ` Junio C Hamano
2026-10-09 12:00   ` [PATCH v2 2/6] doc: git-merge: link to new merge conflicts guide Julia Evans via GitGitGadget
2026-10-09 18:20     ` Junio C Hamano
2026-10-09 12:00   ` [PATCH v2 3/6] doc: git-rebase: " Julia Evans via GitGitGadget
2026-10-09 18:22     ` Junio C Hamano
2026-10-09 12:00   ` [PATCH v2 4/6] doc: git-revert: " Julia Evans via GitGitGadget
2026-10-09 18:24     ` Junio C Hamano
2026-10-09 12:00   ` [PATCH v2 5/6] doc: git-cherry-pick: " Julia Evans via GitGitGadget
2026-10-09 18:26     ` Junio C Hamano
2026-10-09 20:12       ` Julia Evans
2026-10-09 12:00   ` [PATCH v2 6/6] doc: git-pull: " Julia Evans via GitGitGadget
2026-10-09 18:27     ` Junio C Hamano
2026-10-09 15:41   ` [PATCH v2 0/6] [doc] Add new page on merge conflicts Junio C Hamano
2026-10-09 15:53     ` Julia Evans
2026-10-09 22:10     ` Ben Knoble
2026-10-09 18:36   ` Junio C Hamano
2026-10-12 14:53 ` [PATCH v3 " Julia Evans via GitGitGadget
2026-10-12 14:53   ` [PATCH v3 1/6] doc: add new gitmergeconflicts man page Julia Evans via GitGitGadget
2026-10-12 18:16     ` Junio C Hamano
2026-10-14 19:24       ` Julia Evans
2026-10-14 22:08         ` Junio C Hamano
2026-10-13 11:07     ` Patrick Steinhardt
2026-10-14 19:50       ` Julia Evans
2026-10-12 14:53   ` [PATCH v3 2/6] doc: git-merge: link to new merge conflicts guide Julia Evans via GitGitGadget
2026-10-12 14:53   ` [PATCH v3 3/6] doc: git-rebase: " Julia Evans via GitGitGadget
2026-10-12 14:53   ` [PATCH v3 4/6] doc: git-revert: " Julia Evans via GitGitGadget
2026-10-12 14:53   ` [PATCH v3 5/6] doc: git-cherry-pick: " Julia Evans via GitGitGadget
2026-10-13 11:07     ` Patrick Steinhardt
2026-10-12 14:53   ` [PATCH v3 6/6] doc: git-pull: " Julia Evans via GitGitGadget
2026-10-12 15:53   ` [PATCH v3 0/6] [doc] Add new page on merge conflicts D. Ben Knoble
2026-10-12 20:44     ` Julia Evans
2026-10-12 18:17   ` Junio C Hamano
2026-10-12 18:37     ` Junio C Hamano
2026-10-23 14:04 ` [PATCH v4 " Julia Evans via GitGitGadget
2026-10-23 14:04   ` [PATCH v4 1/6] doc: add new gitmergeconflicts man page Julia Evans via GitGitGadget
2026-10-23 19:14     ` Junio C Hamano
2026-10-26 12:35       ` Julia Evans [this message]
2026-10-26 14:37         ` Junio C Hamano
2026-10-26 14:47           ` Julia Evans
2026-10-26 17:22             ` Junio C Hamano
2026-10-23 14:04   ` [PATCH v4 2/6] doc: git-merge: link to new merge conflicts guide Julia Evans via GitGitGadget
2026-10-23 14:04   ` [PATCH v4 3/6] doc: git-rebase: " Julia Evans via GitGitGadget
2026-10-23 14:04   ` [PATCH v4 4/6] doc: git-revert: " Julia Evans via GitGitGadget
2026-10-23 14:04   ` [PATCH v4 5/6] doc: git-cherry-pick: " Julia Evans via GitGitGadget
2026-10-23 14:04   ` [PATCH v4 6/6] doc: git-pull: " Julia Evans via GitGitGadget
2026-10-23 14:18   ` [PATCH v4 0/6] [doc] Add new page on merge conflicts Ben Knoble
2026-10-23 16:00   ` Junio C Hamano
2026-10-23 16:06   ` Junio C Hamano
2026-10-23 16:18     ` Junio C Hamano
2026-10-26 12:39 ` [PATCH v5 " Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 1/6] doc: add new gitmergeconflicts man page Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 2/6] doc: git-merge: link to new merge conflicts guide Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 3/6] doc: git-rebase: " Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 4/6] doc: git-revert: " Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 5/6] doc: git-cherry-pick: " Julia Evans via GitGitGadget
2026-10-26 12:40   ` [PATCH v5 6/6] doc: git-pull: " Julia Evans via GitGitGadget

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2564bcc2-2f78-4ea2-9b6f-c033e95983d8@app.fastmail.com \
    --to=julia@jvns.ca \
    --cc=ben.knoble@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=ps@pks.im \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox