Merge branch 'fixes/2.45.1/2.41' into fixes/2.45.1/2.42
[alt-git.git] / t / t4004-diff-rename-symlink.sh
blob1d70d4d221b7536c430852e9014c9372743a4a2a
1 #!/bin/sh
3 # Copyright (c) 2005 Junio C Hamano
6 test_description='More rename detection tests.
8 The rename detection logic should be able to detect pure rename or
9 copy of symbolic links, but should not produce rename/copy followed
10 by an edit for them.
13 TEST_PASSES_SANITIZE_LEAK=true
14 . ./test-lib.sh
15 . "$TEST_DIRECTORY"/lib-diff.sh
17 test_expect_success SYMLINKS 'prepare reference tree' '
18 echo xyzzy | tr -d '\\\\'012 >yomin &&
19 ln -s xyzzy frotz &&
20 git update-index --add frotz yomin &&
21 tree=$(git write-tree) &&
22 echo $tree
25 test_expect_success SYMLINKS 'prepare work tree' '
26 mv frotz rezrov &&
27 rm -f yomin &&
28 ln -s xyzzy nitfol &&
29 ln -s xzzzy bozbar &&
30 git update-index --add --remove frotz rezrov nitfol bozbar yomin
33 # tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
34 # confuse things. work tree has rezrov (xyzzy) nitfol (xyzzy) and
35 # bozbar (xzzzy).
36 # rezrov and nitfol are rename/copy of frotz and bozbar should be
37 # a new creation.
39 test_expect_success SYMLINKS 'setup diff output' '
40 GIT_DIFF_OPTS=--unified=0 git diff-index -C -p $tree >current &&
41 cat >expected <<\EOF
42 diff --git a/bozbar b/bozbar
43 new file mode 120000
44 --- /dev/null
45 +++ b/bozbar
46 @@ -0,0 +1 @@
47 +xzzzy
48 \ No newline at end of file
49 diff --git a/frotz b/nitfol
50 similarity index 100%
51 copy from frotz
52 copy to nitfol
53 diff --git a/frotz b/rezrov
54 similarity index 100%
55 rename from frotz
56 rename to rezrov
57 diff --git a/yomin b/yomin
58 deleted file mode 100644
59 --- a/yomin
60 +++ /dev/null
61 @@ -1 +0,0 @@
62 -xyzzy
63 \ No newline at end of file
64 EOF
67 test_expect_success SYMLINKS 'validate diff output' '
68 compare_diff_patch current expected
71 test_done