Use a strbuf in symlink
[git/mingw/4msysgit.git] / t / t4023-diff-rename-typechange.sh
bloba4ba0403418460bc305b62595a4f1d78528e445f
1 #!/bin/sh
3 test_description='typechange rename detection'
5 . ./test-lib.sh
7 test_expect_success setup '
9 rm -f foo bar &&
10 cat "$TEST_DIRECTORY"/../COPYING >foo &&
11 touch linklink
12 test_ln_s_add linklink bar &&
13 git add foo &&
14 git commit -a -m Initial &&
15 git tag one &&
17 git rm -f foo bar &&
18 cat "$TEST_DIRECTORY"/../COPYING >bar &&
19 test_ln_s_add linklink foo &&
20 git add bar &&
21 git commit -a -m Second &&
22 git tag two &&
24 git rm -f foo bar &&
25 cat "$TEST_DIRECTORY"/../COPYING >foo &&
26 git add foo &&
27 git commit -a -m Third &&
28 git tag three &&
30 mv foo bar &&
31 test_ln_s_add linklink foo &&
32 git add bar &&
33 git commit -a -m Fourth &&
34 git tag four &&
36 # This is purely for sanity check
38 git rm -f foo bar &&
39 cat "$TEST_DIRECTORY"/../COPYING >foo &&
40 cat "$TEST_DIRECTORY"/../Makefile >bar &&
41 git add foo bar &&
42 git commit -a -m Fifth &&
43 git tag five &&
45 git rm -f foo bar &&
46 cat "$TEST_DIRECTORY"/../Makefile >foo &&
47 cat "$TEST_DIRECTORY"/../COPYING >bar &&
48 git add foo bar &&
49 git commit -a -m Sixth &&
50 git tag six
54 test_expect_success 'cross renames to be detected for regular files' '
56 git diff-tree five six -r --name-status -B -M | sort >actual &&
58 echo "R100 foo bar"
59 echo "R100 bar foo"
60 } | sort >expect &&
61 test_cmp expect actual
65 test_expect_success 'cross renames to be detected for typechange' '
67 git diff-tree one two -r --name-status -B -M | sort >actual &&
69 echo "R100 foo bar"
70 echo "R100 bar foo"
71 } | sort >expect &&
72 test_cmp expect actual
76 test_expect_success 'moves and renames' '
78 git diff-tree three four -r --name-status -B -M | sort >actual &&
80 echo "R100 foo bar"
81 echo "T100 foo"
82 } | sort >expect &&
83 test_cmp expect actual
87 test_done