summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorLibravatar Elijah Newren <newren@gmail.com>2021-02-14 07:51:46 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-02-15 18:02:16 -0800
commitf3845257a55aa5c949ce2543d53fe1f28b5072df (patch)
treed991c7ee26e014a7615c63d2fb6a369f0a32eb2f /t
parentdiffcore-rename: filter rename_src list when possible (diff)
downloadtgif-f3845257a55aa5c949ce2543d53fe1f28b5072df.tar.xz
t4001: add a test comparing basename similarity and content similarity
Add a simple test where a removed file is similar to two different added files; one of them has the same basename, and the other has a slightly higher content similarity. In the current test, content similarity is weighted higher than filename similarity. Subsequent commits will add a new rule that weighs a mixture of filename similarity and content similarity in a manner that will change the outcome of this testcase. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t4001-diff-rename.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/t/t4001-diff-rename.sh b/t/t4001-diff-rename.sh
index c16486a9d4..0f97858197 100755
--- a/t/t4001-diff-rename.sh
+++ b/t/t4001-diff-rename.sh
@@ -262,4 +262,27 @@ test_expect_success 'diff-tree -l0 defaults to a big rename limit, not zero' '
grep "myotherfile.*myfile" actual
'
+test_expect_success 'basename similarity vs best similarity' '
+ mkdir subdir &&
+ test_write_lines line1 line2 line3 line4 line5 \
+ line6 line7 line8 line9 line10 >subdir/file.txt &&
+ git add subdir/file.txt &&
+ git commit -m "base txt" &&
+
+ git rm subdir/file.txt &&
+ test_write_lines line1 line2 line3 line4 line5 \
+ line6 line7 line8 >file.txt &&
+ test_write_lines line1 line2 line3 line4 line5 \
+ line6 line7 line8 line9 >file.md &&
+ git add file.txt file.md &&
+ git commit -a -m "rename" &&
+ git diff-tree -r -M --name-status HEAD^ HEAD >actual &&
+ # subdir/file.txt is 88% similar to file.md and 78% similar to file.txt
+ cat >expected <<-\EOF &&
+ R088 subdir/file.txt file.md
+ A file.txt
+ EOF
+ test_cmp expected actual
+'
+
test_done