From: Fredrik Kuivinen Date: Fri, 02 Dec 2005 08:46:54 GMT Subject: Re: What's new in git.git master branch Message-ID: <20051202084654.GB4824@c165.ib.student.liu.se> In-Reply-To: <7v7jao9hln.fsf@assigned-by-dhcp.cox.net> On Thu, Dec 01, 2005 at 09:46:12PM -0800, Junio C Hamano wrote: > Junio C Hamano writes: > > > Fredrik Kuivinen writes: > > > >> It turns out that this change breaks the directory/file conflict > >> handling in git-merge-recursive. > >> > >> git-ls-tree -r -z > >> > >> Should we do it that way or should ls-tree be changed? > > > > Ouch. Sorry, I should have been more careful. > > So we updated ls-tree to take -t flag which shows tree entries > under -r flag. I'd appreciate if you test the attached patch. With the patch tt works properly again. Thanks :) > > Also I think I broke the case where base trees need to be merged > > in 58cce8a8 commit (I changed processEntry not to collapse the > > index entry when file content changes cannot be automerged, but > > that change has to be done only for the final merge, and merges > > between base trees must collapse to be able to write the index > > file out as a tree). > > I think that the above worry was unfounded, because the > updateFileExt call I removed to prevent it from collapsing the > unmerged entries was in effect only in !cacheOnly case > (i.e. callDepth == 0). Yes, the code is correct. You can apply the following patch to make it a bit simpler. - Fredrik -- merge-recursive: Clean up index updates Signed-off-by: Fredrik Kuivinen --- git-merge-recursive.py | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) 66b1a0157f25629b35ecf300450618a230741218 diff --git a/git-merge-recursive.py b/git-merge-recursive.py index b7fb096..4f061da 100755 --- a/git-merge-recursive.py +++ b/git-merge-recursive.py @@ -825,10 +825,7 @@ def processEntry(entry, branch1Name, bra cleanMerge = False output('CONFLICT (content): Merge conflict in', path) - if cacheOnly: - updateFile(False, sha, mode, path) - else: - updateFileExt(sha, mode, path, updateCache=False, updateWd=True) + updateFile(False, sha, mode, path) else: die("ERROR: Fatal merge failure, shouldn't happen.") -- 0.99.9.GIT