Re: git format-patch lost the last part when branch merge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 23, 2021 at 08:24:24PM -0800, Elijah Newren wrote:

> > You could imagine ways for format-patch to represent the conflict
> > resolution done in a merge, but it's not quite trivial, and nobody has
> > done it yet.
> 
> Are you referring to something like this (in the git.git repository)?
> 
> $ git show --oneline --remerge-diff 42342b3ee6
> 42342b3ee6 Merge branch 'ab/mailmap'
> diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh
> index 1bce961e07..6fb18a34b0 100755
> --- a/t/t4203-mailmap.sh
> +++ b/t/t4203-mailmap.sh
> @@ -257,16 +257,8 @@ test_expect_success 'No mailmap files, but configured' '
> 
>  test_expect_success 'setup mailmap blob tests' '
>         git checkout -b map &&
> -<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60ecad090d (Merge branch 'ps/fetch-atomic')
>         test_when_finished "git checkout main" &&
> -       cat >just-bugs <<- EOF &&
> -|||||||||||||||||||||||||||||||| 72c4083ddf
> -       test_when_finished "git checkout master" &&
> -       cat >just-bugs <<- EOF &&
> -================================
> -       test_when_finished "git checkout master" &&
>         cat >just-bugs <<-\EOF &&
> ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 4e168333a8 (shortlog: remove
> unused(?) "repo-abbrev" feature)
>         Blob Guy <bugs@xxxxxxxxxx>
>         EOF
>         cat >both <<-EOF &&
> 
> 
> I agree that representing the conflict done in a merge is more
> difficult than it sounds, but if you mean what I think you mean then I
> disagree with the "nobody has done it yet" half of your statement.
> :-)
> 
> That said, I haven't attempted to tie this into format-patch in any
> way, and have absolutely no plans to.  (And --remerge-diff hasn't been
> submitted upstream, because it depends on ort, and that still needs
> reviews...)

I certainly was thinking of remerge-diff when I was writing all of that,
but didn't want to get too far into the details. I think it's an
absolutely wonderful way of showing off conflict resolution, and I'm
excited to see it as a feature in Git. But:

  - as you note, it isn't a public feature yet ;)

  - while format-patch will learn about it because it knows all of the
    diff formats, the fundamental point of format-patch is to produce
    output that can be applied with git-am. So we'd only be halfway
    there.

  - it does still get weird specifying a merge at all as part of a
    series. Merging _what_ exactly? The topic branch made of the patches
    that were just sent?  A back-merge from some other commit on master
    into the topic branch? And if the latter, wouldn't that depend
    heavily on the base commit that the patches are applied on top of?

So I left it as "you could imagine" and "it's not quite trivial". ;)

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux