From: Fredrik Kuivinen Date: Sun, 29 Jan 2006 12:03:44 GMT Subject: Re: No merge strategy handled the merge (git version 1.1.GIT) Message-ID: <20060129120344.GB4815@c165.ib.student.liu.se> In-Reply-To: <43DB4D16.6050807@drugphish.ch> On Sat, Jan 28, 2006 at 11:53:10AM +0100, Roberto Nibali wrote: > Hello, > > I've been hacking on some features for IPVS in the Linux kernel recently > but abandoned work for 3 weeks. Today I wanted to re-sync with Linus to > work in a more up-to-date tree and simply typed (forgot I had previously > done work in that tree) > > git-pull > > in my local repository tree, which resulted in following: > ... > Auto-merging net/ipv4/ipvs/ip_vs_ctl.c > Traceback (most recent call last): > File "/home/ratz/bin/git-merge-recursive", line 915, in ? > firstBranch, secondBranch, graph) > File "/home/ratz/bin/git-merge-recursive", line 87, in merge > branch1Name, branch2Name) > File "/home/ratz/bin/git-merge-recursive", line 160, in mergeTrees > if not processEntry(entry, branch1Name, branch2Name): > File "/home/ratz/bin/git-merge-recursive", line 868, in processEntry > branch1Name, branch2Name) > File "/home/ratz/bin/git-merge-recursive", line 212, in mergeFile > src1, orig, src2], returnCode=True) > File "/home/ratz/share/git-core/python/gitMergeCommon.py", line 72, > in runProgram > raise ProgramError(progStr, e.strerror) > ProgramError: merge -L HEAD/net/ipv4/ipvs/ip_vs_ctl.c -L > orig/net/ipv4/ipvs/ip_vs_ctl.c -L > 3ee68c4af3fd7228c1be63254b9f884614f9ebb2/net/ipv4/ipvs/ip_vs_ctl.c > .merge_file_uofMwv .merge_file_hcesLs .merge_file_TwtEqw: No such file > or directory > No merge strategy handled the merge. > The problem is that merge(1), which is used for file-level merges, couldn't be found. Is it installed on your system? If you use Linux, it is usually found in the "rcs" package in your favorite distribution. This have came up a couple of times now, we should probably make this error message a bit less cryptic. I will send a patch in a separate mail. > I'm all for verbosity when it comes to a problem with software, however > this output does not tell me much about what I could do to achieve > following state: > > 1. Sync my local tree to Linus' tree. > 2. Merge my changes I've done locally with the resulting tree of 1. > If your repository is in the state that the failed git-pull left it in, then the following actions should merge your changes with Linus' tree. 1. Install merge(1) 2. Run 'git reset --hard' (NOTE: Be careful with this command. It will revert any uncommitted changes you may have in your working directory!) 3. Run 'git pull' > Oh, btw, how is git branch -D supposed to work? Isn't there some code > missing? Could you be a bit more specific? Do you mean that there is code missing in git-branch.sh? What happens when you run 'git branch -D '? It seems to work fine here. - Fredrik