]>
Commit | Line | Data |
---|---|---|
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 | . "$TEST_DIRECTORY"/diff-lib.sh | |
14 | ||
15 | test_expect_success SYMLINKS \ | |
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 SYMLINKS \ | |
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 | test_expect_success SYMLINKS 'setup diff output' " | |
38 | GIT_DIFF_OPTS=--unified=0 git diff-index -C -p $tree >current && | |
39 | cat >expected <<\EOF | |
40 | diff --git a/bozbar b/bozbar | |
41 | new file mode 120000 | |
42 | --- /dev/null | |
43 | +++ b/bozbar | |
44 | @@ -0,0 +1 @@ | |
45 | +xzzzy | |
46 | \ No newline at end of file | |
47 | diff --git a/frotz b/nitfol | |
48 | similarity index 100% | |
49 | copy from frotz | |
50 | copy to nitfol | |
51 | diff --git a/frotz b/rezrov | |
52 | similarity index 100% | |
53 | rename from frotz | |
54 | rename to rezrov | |
55 | diff --git a/yomin b/yomin | |
56 | deleted file mode 100644 | |
57 | --- a/yomin | |
58 | +++ /dev/null | |
59 | @@ -1 +0,0 @@ | |
60 | -xyzzy | |
61 | \ No newline at end of file | |
62 | EOF | |
63 | " | |
64 | ||
65 | test_expect_success SYMLINKS \ | |
66 | 'validate diff output' \ | |
67 | 'compare_diff_patch current expected' | |
68 | ||
69 | test_done |