Re: [PATCH v12 5/5] read-cache: speed up has_dir_name (part 2)
From: René Scharfe <hidden>
Date: 2020-07-05 05:28:26
Am 04.07.20 um 19:27 schrieb SZEDER Gábor:
quoted hunk ↗ jump to hunk
diff --git a/t/t9999-test.sh b/t/t9999-test.sh new file mode 100755 index 0000000000..4c802d5940 --- /dev/null +++ b/t/t9999-test.sh@@ -0,0 +1,47 @@ +#!/bin/sh + +test_description='test' + +. ./test-lib.sh + +test_expect_success 'file to dir breakage' ' + >file-to-dir && + # This sorts between "file-to-dir" as a file and "file-to-dir" + # as a directory (with the trailing / appended implicitly. + >file-to-dir.uh-oh && + git add file-to-dir file-to-dir.uh-oh && + git commit -m "add a file" && + + # Not "git rm", to preserve "file-to-dir" in the index. + rm file-to-dir && + mkdir file-to-dir && + >file-to-dir/file && + + # It is important to add the file in the directory; adding only + # the directory doesnt trigger the bug. + git add file-to-dir/file && + + git diff --cached --no-renames --name-status >actual && + + cat >expect <<-\EOF && + D file-to-dir + A file-to-dir/file + EOF + test_cmp expect actual +' + +test_expect_success 'is it committed as-is?' ' + git commit -m "replace file with a dir" && + git ls-tree HEAD >actual && + + # Hardcoded SHA-1 oid :(, because with this bug present + # "git rev-parse HEAD:file-to-dir" doesnt show the oid of + # the tree, but the oid of the blob that shouldnt be there. + cat >expect <<-EOF && + 100644 blob $EMPTY_BLOB file-to-dir.uh-oh + 040000 tree df2b8fc99e1c1d4dbc0a854d9f72157f1d6ea078 file-to-dir
You can get the hash of the tree with: echo "100644 blob $EMPTY_BLOB file" | git mktree (TAB before "file", the rest of the whitespace are regular spaces)
+ EOF + test_cmp expect actual +' + +test_done