diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-12-13 15:51:29 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-12-26 14:46:15 -0800 |
commit | 35ffe7583108ab236dcf81226690388491d9962f (patch) | |
tree | 7e10e89e49f8c7184486d965d3544d515afa389b /t | |
parent | 8dd15c6a909c059c6fd4f4dd914dbf932617ea57 (diff) | |
download | git-35ffe7583108ab236dcf81226690388491d9962f.tar.gz |
merge-tree: fix d/f conflicts
The previous commit documented two known breakages revolving around
a case where one side flips a tree into a blob (or vice versa),
where the original code simply gets confused and feeds a mixture of
trees and blobs into either the recursive merge-tree (and recursing
into the blob will fail) or three-way merge (and merging tree contents
together with blobs will fail).
Fix it by feeding trees (and only trees) into the recursive
merge-tree machinery and blobs (and only blobs) into the three-way
content level merge machinery separately; when this happens, the
entire merge has to be marked as conflicting at the structure level.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t4300-merge-tree.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/t/t4300-merge-tree.sh b/t/t4300-merge-tree.sh index 03e8fcad35..d0b2a457b8 100755 --- a/t/t4300-merge-tree.sh +++ b/t/t4300-merge-tree.sh @@ -254,7 +254,7 @@ EXPECTED test_cmp expected actual ' -test_expect_failure 'turn file to tree' ' +test_expect_success 'turn file to tree' ' git reset --hard initial && rm initial-file && mkdir initial-file && @@ -274,7 +274,7 @@ test_expect_failure 'turn file to tree' ' test_cmp expect actual ' -test_expect_failure 'turn tree to file' ' +test_expect_success 'turn tree to file' ' git reset --hard initial && mkdir dir && test_commit "add-tree" "dir/path" "AAA" && |