diff mbox series

non-regression bug in 'git merge' (really, xdiff/xmerge, I think)

Message ID xmqqy2si9z4x.fsf_-_@gitster-ct.c.googlers.com (mailing list archive)
State New, archived
Headers show
Series non-regression bug in 'git merge' (really, xdiff/xmerge, I think) | expand

Commit Message

Junio C Hamano March 2, 2020, 10:21 p.m. UTC
Thomas Gummerer <t.gummerer@gmail.com> writes:

> diff --git a/Makefile b/Makefile
> index 9804a0758b..096c6d1fbb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -609,7 +609,6 @@ SCRIPT_SH += git-merge-one-file.sh
>  SCRIPT_SH += git-merge-resolve.sh
>  SCRIPT_SH += git-mergetool.sh
>  SCRIPT_SH += git-quiltimport.sh
> -SCRIPT_SH += git-legacy-stash.sh
>  SCRIPT_SH += git-request-pull.sh
>  SCRIPT_SH += git-submodule.sh
>  SCRIPT_SH += git-web--browse.sh

Merging this topic to 'pu', which has dl/merge-autostash topic
already merged, breaks the build and it is not fault of Thomas's
topic.  dl/merge-autostash has the following bit:

commit 4b981afaa03c00524f1d4986271a3f4cc119f4cd
Merge: 06928448f7 de4db86ff2
Author: Junio C Hamano <gitster@pobox.com>
Date:   Mon Mar 2 13:23:26 2020 -0800

    Merge branch 'dl/merge-autostash' into pu
    
    "git merge" learns the "--autostash" option.
    
    * dl/merge-autostash:
      ...
      Makefile: alphabetically sort += lists

already been applied.  And as a result of that, there remains
legacy-stash between fliter-branch and merge-octopus, breaking the
build by having one unbuildable build target X-<.

Comments

Elijah Newren March 6, 2020, 3:48 p.m. UTC | #1
On Mon, Mar 2, 2020 at 2:21 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> Thomas Gummerer <t.gummerer@gmail.com> writes:
>
> > diff --git a/Makefile b/Makefile
> > index 9804a0758b..096c6d1fbb 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -609,7 +609,6 @@ SCRIPT_SH += git-merge-one-file.sh
> >  SCRIPT_SH += git-merge-resolve.sh
> >  SCRIPT_SH += git-mergetool.sh
> >  SCRIPT_SH += git-quiltimport.sh
> > -SCRIPT_SH += git-legacy-stash.sh
> >  SCRIPT_SH += git-request-pull.sh
> >  SCRIPT_SH += git-submodule.sh
> >  SCRIPT_SH += git-web--browse.sh
>
> Merging this topic to 'pu', which has dl/merge-autostash topic
> already merged, breaks the build and it is not fault of Thomas's
> topic.  dl/merge-autostash has the following bit:
>
> commit 4b981afaa03c00524f1d4986271a3f4cc119f4cd
> Merge: 06928448f7 de4db86ff2
> Author: Junio C Hamano <gitster@pobox.com>
> Date:   Mon Mar 2 13:23:26 2020 -0800
>
>     Merge branch 'dl/merge-autostash' into pu
>
>     "git merge" learns the "--autostash" option.
>
>     * dl/merge-autostash:
>       ...
>       Makefile: alphabetically sort += lists
>
> diff --git a/Makefile b/Makefile
> index a5961113d8..c0793ac75b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -604,12 +604,12 @@ unexport CDPATH
>  SCRIPT_SH += git-bisect.sh
>  SCRIPT_SH += git-difftool--helper.sh
>  SCRIPT_SH += git-filter-branch.sh
> +SCRIPT_SH += git-legacy-stash.sh
>  SCRIPT_SH += git-merge-octopus.sh
>  SCRIPT_SH += git-merge-one-file.sh
>  SCRIPT_SH += git-merge-resolve.sh
>  SCRIPT_SH += git-mergetool.sh
>  SCRIPT_SH += git-quiltimport.sh
> -SCRIPT_SH += git-legacy-stash.sh
>  SCRIPT_SH += git-request-pull.sh
>  SCRIPT_SH += git-submodule.sh
>  SCRIPT_SH += git-web--browse.sh
> @@ -617,8 +617,8 @@ SCRIPT_SH += git-web--browse.sh
>
> which makes it appear to the xmerge code that legacy-status that
> used to exist in between quiltimport and request-pull has already
> been removed.
>
> As Thomas's above patch exactly wants to do that (i.e. we want to
> remove legacy-stash between quiltimport and request-pull), the
> xmerge code seems to think incorrectly that the requested change has
> already been applied.  And as a result of that, there remains
> legacy-stash between fliter-branch and merge-octopus, breaking the
> build by having one unbuildable build target X-<.

Thanks for the heads up; I agree that it looks like an xdiff thing,
and in particular it reminds me of
https://lore.kernel.org/git/20190816184051.GB13894@sigill.intra.peff.net/
and https://lore.kernel.org/git/CABPp-BHvJHpSJT7sdFwfNcPn_sOXwJi3=o14qjZS3M8Rzcxe2A@mail.gmail.com/

I'm collecting these cases because I'd like to look into it at some
point, though for now I'm more focused on merge-ort (my
merge-recursive replacement).
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index a5961113d8..c0793ac75b 100644
--- a/Makefile
+++ b/Makefile
@@ -604,12 +604,12 @@  unexport CDPATH
 SCRIPT_SH += git-bisect.sh
 SCRIPT_SH += git-difftool--helper.sh
 SCRIPT_SH += git-filter-branch.sh
+SCRIPT_SH += git-legacy-stash.sh
 SCRIPT_SH += git-merge-octopus.sh
 SCRIPT_SH += git-merge-one-file.sh
 SCRIPT_SH += git-merge-resolve.sh
 SCRIPT_SH += git-mergetool.sh
 SCRIPT_SH += git-quiltimport.sh
-SCRIPT_SH += git-legacy-stash.sh
 SCRIPT_SH += git-request-pull.sh
 SCRIPT_SH += git-submodule.sh
 SCRIPT_SH += git-web--browse.sh
@@ -617,8 +617,8 @@  SCRIPT_SH += git-web--browse.sh

which makes it appear to the xmerge code that legacy-status that
used to exist in between quiltimport and request-pull has already
been removed.

As Thomas's above patch exactly wants to do that (i.e. we want to
remove legacy-stash between quiltimport and request-pull), the
xmerge code seems to think incorrectly that the requested change has