Merge branch 'eb/mailinfo'
[git.git] / t / t4004-diff-rename-symlink.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2005 Junio C Hamano
4 #
5
6 test_description='More rename detection tests.
7
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.
11 '
12 . ./test-lib.sh
13 . ../diff-lib.sh
14
15 test_expect_success \
16     'prepare reference tree' \
17     'echo xyzzy | tr -d '\\\\'012 >yomin &&
18      ln -s xyzzy frotz &&
19     git-update-index --add frotz yomin &&
20     tree=$(git-write-tree) &&
21     echo $tree'
22
23 test_expect_success \
24     'prepare work tree' \
25     'mv frotz rezrov &&
26      rm -f yomin &&
27      ln -s xyzzy nitfol &&
28      ln -s xzzzy bozbar &&
29     git-update-index --add --remove frotz rezrov nitfol bozbar yomin'
30
31 # tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
32 # confuse things.  work tree has rezrov (xyzzy) nitfol (xyzzy) and
33 # bozbar (xzzzy).
34 # rezrov and nitfol are rename/copy of frotz and bozbar should be
35 # a new creation.
36
37 GIT_DIFF_OPTS=--unified=0 git-diff-index -M -p $tree >current
38 cat >expected <<\EOF
39 diff --git a/bozbar b/bozbar
40 new file mode 120000
41 --- /dev/null
42 +++ b/bozbar
43 @@ -0,0 +1 @@
44 +xzzzy
45 \ No newline at end of file
46 diff --git a/frotz b/nitfol
47 similarity index 100%
48 copy from frotz
49 copy to nitfol
50 diff --git a/frotz b/rezrov
51 similarity index 100%
52 rename from frotz
53 rename to rezrov
54 diff --git a/yomin b/yomin
55 deleted file mode 100644
56 --- a/yomin
57 +++ /dev/null
58 @@ -1 +0,0 @@
59 -xyzzy
60 \ No newline at end of file
61 EOF
62
63 test_expect_success \
64     'validate diff output' \
65     'compare_diff_patch current expected'
66
67 test_done