Re: What's new in git.git master branch
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:14
Junio C Hamano [off-list ref] writes:
Fredrik Kuivinen [off-list ref] writes:quoted
It turns out that this change breaks the directory/file conflict handling in git-merge-recursive. git-ls-tree -r -z <tree SHA1> 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.
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). -- >8 -- [PATCH] merge-recursive: adjust git-ls-tree use for the latest. You need to pass -t flag if you want to see tree objects in "git-ls-tree -r" output these days. This change broke the tree structure reading code in git-merge-recursive used to detect D/F conflicts. Signed-off-by: Junio C Hamano <redacted> --- git-merge-recursive.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) a6b51f11ab7f7f838a9b17f81059eebfc36e4c84
diff --git a/git-merge-recursive.py b/git-merge-recursive.py
index e599b11..b7fb096 100755
--- a/git-merge-recursive.py
+++ b/git-merge-recursive.py@@ -98,7 +98,7 @@ getFilesRE = re.compile(r'^([0-7]+) (\S+ def getFilesAndDirs(tree): files = Set() dirs = Set() - out = runProgram(['git-ls-tree', '-r', '-z', tree]) + out = runProgram(['git-ls-tree', '-r', '-z', '-t', tree]) for l in out.split('\0'): m = getFilesRE.match(l) if m:
--
0.99.9.GIT