]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t4001: add a test comparing basename similarity and content similarity
authorElijah Newren <newren@gmail.com>
Sun, 14 Feb 2021 07:51:46 +0000 (07:51 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 Feb 2021 02:02:16 +0000 (18:02 -0800)
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>
t/t4001-diff-rename.sh

index c16486a9d41a125610e6280a79e958ebbb792653..0f97858197e1ff03626372f6f3d57036e59bbdc0 100755 (executable)
@@ -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