mirror of
https://github.com/git/git
synced 2024-08-24 02:11:08 +00:00
![Linus Torvalds](/assets/img/avatar_default.png)
We would allow rename detection to do copy detection even when asked purely for renames. That confuses users, but more importantly it can terminally confuse the recursive merge rename logic. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
70 lines
1.6 KiB
Bash
Executable file
70 lines
1.6 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='More rename detection tests.
|
|
|
|
The rename detection logic should be able to detect pure rename or
|
|
copy of symbolic links, but should not produce rename/copy followed
|
|
by an edit for them.
|
|
'
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY"/diff-lib.sh
|
|
|
|
test_expect_success SYMLINKS \
|
|
'prepare reference tree' \
|
|
'echo xyzzy | tr -d '\\\\'012 >yomin &&
|
|
ln -s xyzzy frotz &&
|
|
git update-index --add frotz yomin &&
|
|
tree=$(git write-tree) &&
|
|
echo $tree'
|
|
|
|
test_expect_success SYMLINKS \
|
|
'prepare work tree' \
|
|
'mv frotz rezrov &&
|
|
rm -f yomin &&
|
|
ln -s xyzzy nitfol &&
|
|
ln -s xzzzy bozbar &&
|
|
git update-index --add --remove frotz rezrov nitfol bozbar yomin'
|
|
|
|
# tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
|
|
# confuse things. work tree has rezrov (xyzzy) nitfol (xyzzy) and
|
|
# bozbar (xzzzy).
|
|
# rezrov and nitfol are rename/copy of frotz and bozbar should be
|
|
# a new creation.
|
|
|
|
test_expect_success SYMLINKS 'setup diff output' "
|
|
GIT_DIFF_OPTS=--unified=0 git diff-index -C -p $tree >current &&
|
|
cat >expected <<\EOF
|
|
diff --git a/bozbar b/bozbar
|
|
new file mode 120000
|
|
--- /dev/null
|
|
+++ b/bozbar
|
|
@@ -0,0 +1 @@
|
|
+xzzzy
|
|
\ No newline at end of file
|
|
diff --git a/frotz b/nitfol
|
|
similarity index 100%
|
|
copy from frotz
|
|
copy to nitfol
|
|
diff --git a/frotz b/rezrov
|
|
similarity index 100%
|
|
rename from frotz
|
|
rename to rezrov
|
|
diff --git a/yomin b/yomin
|
|
deleted file mode 100644
|
|
--- a/yomin
|
|
+++ /dev/null
|
|
@@ -1 +0,0 @@
|
|
-xyzzy
|
|
\ No newline at end of file
|
|
EOF
|
|
"
|
|
|
|
test_expect_success SYMLINKS \
|
|
'validate diff output' \
|
|
'compare_diff_patch current expected'
|
|
|
|
test_done
|