archive: handle commits with an empty tree
[git/jnareb-git.git] / t / t4004-diff-rename-symlink.sh
blob6e562c80d12f9f58353c8f6444c0d7a0737dbae4
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.
12 . ./test-lib.sh
13 . "$TEST_DIRECTORY"/diff-lib.sh
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'
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'
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.
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
65 test_expect_success SYMLINKS \
66 'validate diff output' \
67 'compare_diff_patch current expected'
69 test_done