threads / discuss / 2796

t6021-merge-criss-cross.sh fails on some systems

Subject: t6021-merge-criss-cross.sh fails on some systems

## tl;dr

5 messages between Dec 10, 2005 and Dec 11, 2005.

replies: 4people: 3as markdown or json

David S. Miller· Dec 10, 2005, 22:42 UTC · lore
This is really weird, so I started to try and get some diagnostics.

It doesn't fail on my sparc64 box running debian-testing but it does fail on my Ubuntu x86 laptop, a sparc64 box running debian-unstable, and an Ubuntu sparc64 system as well.

This is with the current GIT tree.

I ran the test one step at a time to try and get some diagnostics, here's what fails:

davem@nuts:~/src/GIT/test$ git merge "pre E3 merge" B A
Trying really trivial in-index merge...
fatal: Merge requires file-level merging
Nope.
Merging B with A
Merging:
1f14398f4c69d09ab1a4d53fe096ddec3ea45207 C3
d1072ae2682fad309c493343c5d77c9897fb6afa B8
found 1 common ancestor(s):
926159b75e3d9b240b1eae36eb1977b095ff2e1a Initial commit
Auto-merging file
Traceback (most recent call last):
  File "/home/davem/bin/git-merge-recursive", line 868, in ?
    firstBranch, secondBranch, graph)
  File "/home/davem/bin/git-merge-recursive", line 87, in merge
    branch1Name, branch2Name)
  File "/home/davem/bin/git-merge-recursive", line 160, in mergeTrees
    if not processEntry(entry, branch1Name, branch2Name):
  File "/home/davem/bin/git-merge-recursive", line 821, in processEntry
    branch1Name, branch2Name)
  File "/home/davem/bin/git-merge-recursive", line 212, in mergeFile
    src1, orig, src2], returnCode=True)
  File "/home/davem/share/git-core/python/gitMergeCommon.py", line 72, in runProgram
    raise ProgramError(progStr, e.strerror)
ProgramError: merge -L B/file -L orig/file -L A/file .merge_file_kDtaE3 .merge_file_K30Hgp .merge_file_frqYIs: No such file or directory
No merge strategy handled the merge.
davem@nuts:~/src/GIT/test$ ls

It looks like maybe some quoting issue? The call failing above is the one in git-merge-recursive which looks like this:

    [dummy, clean] = merge(graph.shaMap[h1], graph.shaMap[h2],
                           firstBranch, secondBranch, graph)
Any ideas?
Fredrik Kuivinen· Dec 11, 2005, 00:33 UTC · re: David S. Miller · lore

Re: t6021-merge-criss-cross.sh fails on some systems

On Sat, Dec 10, 2005 at 02:42:35PM -0800, David S. Miller wrote:
Show 48 quoted lines
> 
> This is really weird, so I started to try and get some diagnostics.
> 
> It doesn't fail on my sparc64 box running debian-testing
> but it does fail on my Ubuntu x86 laptop, a sparc64 box
> running debian-unstable, and an Ubuntu sparc64 system as
> well.
> 
> This is with the current GIT tree.
> 
> I ran the test one step at a time to try and get some diagnostics,
> here's what fails:
> 
> davem@nuts:~/src/GIT/test$ git merge "pre E3 merge" B A
> Trying really trivial in-index merge...
> fatal: Merge requires file-level merging
> Nope.
> Merging B with A
> Merging:
> 1f14398f4c69d09ab1a4d53fe096ddec3ea45207 C3
> d1072ae2682fad309c493343c5d77c9897fb6afa B8
> found 1 common ancestor(s):
> 926159b75e3d9b240b1eae36eb1977b095ff2e1a Initial commit
> Auto-merging file
> Traceback (most recent call last):
>   File "/home/davem/bin/git-merge-recursive", line 868, in ?
>     firstBranch, secondBranch, graph)
>   File "/home/davem/bin/git-merge-recursive", line 87, in merge
>     branch1Name, branch2Name)
>   File "/home/davem/bin/git-merge-recursive", line 160, in mergeTrees
>     if not processEntry(entry, branch1Name, branch2Name):
>   File "/home/davem/bin/git-merge-recursive", line 821, in processEntry
>     branch1Name, branch2Name)
>   File "/home/davem/bin/git-merge-recursive", line 212, in mergeFile
>     src1, orig, src2], returnCode=True)
>   File "/home/davem/share/git-core/python/gitMergeCommon.py", line 72, in runProgram
>     raise ProgramError(progStr, e.strerror)
> ProgramError: merge -L B/file -L orig/file -L A/file .merge_file_kDtaE3 .merge_file_K30Hgp .merge_file_frqYIs: No such file or directory
> No merge strategy handled the merge.
> davem@nuts:~/src/GIT/test$ ls
> 
> It looks like maybe some quoting issue?  The call failing above is the
> one in git-merge-recursive which looks like this:
> 
>     [dummy, clean] = merge(graph.shaMap[h1], graph.shaMap[h2],
>                            firstBranch, secondBranch, graph)
> 
> Any ideas?

It looks like 'merge' can't be found. The recursive merge strategy uses 'merge' to do file-level merging. Do you have merge(1) installed?

- Fredrik
David S. Miller· Dec 11, 2005, 07:58 UTC · re: Fredrik Kuivinen · lore

Re: t6021-merge-criss-cross.sh fails on some systems

From: Fredrik Kuivinen <freku045@student.liu.se>
Date: Sun, 11 Dec 2005 01:33:53 +0100
> It looks like 'merge' can't be found. The recursive merge strategy
> uses 'merge' to do file-level merging. Do you have merge(1)
> installed?
Yet another weird dependency. :-/  Thanks for the info.

I bet a tiny shell script could run at GIT build time to check for the presence of these necessary items. :-) Yes, the debian/rpm/etc. packaging dependencies will catch this, but a lot of us are doing:

git pull && make && make test && make install
:-)
Junio C Hamano· Dec 11, 2005, 08:07 UTC · re: David S. Miller · lore

Re: t6021-merge-criss-cross.sh fails on some systems

"David S. Miller" <davem@davemloft.net> writes:
> ... but a lot of us are doing:
>
> git pull && make && make test && make install
Fair enough.

Next such round would fail at "make test" stage with t0000; otherwise please let me know

David S. Miller· Dec 11, 2005, 08:12 UTC · re: Junio C Hamano · lore

Re: t6021-merge-criss-cross.sh fails on some systems

From: Junio C Hamano <junkio@cox.net>
Date: Sun, 11 Dec 2005 00:07:38 -0800
> Next such round would fail at "make test" stage with t0000;
> otherwise please let me know
t0000-basic.sh looks wonderful, thanks :)

← back to recent threads