1#!/bin/sh
2#
3# Copyright (c) 2005 Junio C Hamano
4#
5
6test_description='More rename detection tests.
7
8The rename detection logic should be able to detect pure rename or
9copy of symbolic links, but should not produce rename/copy followed
10by an edit for them.
11'
12. ./test-lib.sh
13. ../diff-lib.sh
14
15test_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
23test_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
37GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current
38cat >expected <<\EOF
39diff --git a/bozbar b/bozbar
40new file mode 120000
41--- /dev/null
42+++ b/bozbar
43@@ -0,0 +1 @@
44+xzzzy
45\ No newline at end of file
46diff --git a/frotz b/nitfol
47similarity index 100%
48copy from frotz
49copy to nitfol
50diff --git a/frotz b/rezrov
51similarity index 100%
52rename from frotz
53rename to rezrov
54diff --git a/yomin b/yomin
55deleted file mode 100644
56--- a/yomin
57+++ /dev/null
58@@ -1 +0,0 @@
59-xyzzy
60\ No newline at end of file
61EOF
62
63test_expect_success \
64 'validate diff output' \
65 'compare_diff_patch current expected'
66
67test_done