treat any file with NUL as binary
[git/git-p4.git] / t / t4023-diff-rename-typechange.sh
blob255604effd5ad6d0549e818d489fa91b3af8f2d7
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 ../../COPYING >foo &&
11 ln -s linklink bar &&
12 git add foo bar &&
13 git commit -a -m Initial &&
14 git tag one &&
16 rm -f foo bar &&
17 cat ../../COPYING >bar &&
18 ln -s linklink foo &&
19 git add foo bar &&
20 git commit -a -m Second &&
21 git tag two &&
23 rm -f foo bar &&
24 cat ../../COPYING >foo &&
25 git add foo &&
26 git commit -a -m Third &&
27 git tag three &&
29 mv foo bar &&
30 ln -s linklink foo &&
31 git add foo bar &&
32 git commit -a -m Fourth &&
33 git tag four &&
35 # This is purely for sanity check
37 rm -f foo bar &&
38 cat ../../COPYING >foo &&
39 cat ../../Makefile >bar &&
40 git add foo bar &&
41 git commit -a -m Fifth &&
42 git tag five &&
44 rm -f foo bar &&
45 cat ../../Makefile >foo &&
46 cat ../../COPYING >bar &&
47 git add foo bar &&
48 git commit -a -m Sixth &&
49 git tag six
53 test_expect_success 'cross renames to be detected for regular files' '
55 git diff-tree five six -r --name-status -B -M | sort >actual &&
57 echo "R100 foo bar"
58 echo "R100 bar foo"
59 } | sort >expect &&
60 diff -u expect actual
64 test_expect_success 'cross renames to be detected for typechange' '
66 git diff-tree one two -r --name-status -B -M | sort >actual &&
68 echo "R100 foo bar"
69 echo "R100 bar foo"
70 } | sort >expect &&
71 diff -u expect actual
75 test_expect_success 'moves and renames' '
77 git diff-tree three four -r --name-status -B -M | sort >actual &&
79 echo "R100 foo bar"
80 echo "T100 foo"
81 } | sort >expect &&
82 diff -u expect actual
86 test_done