criss cross rename failure workaround
[git/dscho.git] / t / t4045-diff-relative.sh
blob8a3c63b9e2d8d83b78bd8c9a606b8d774ecf53b3
1 #!/bin/sh
3 test_description='diff --relative tests'
4 . ./test-lib.sh
6 test_expect_success 'setup' '
7 git commit --allow-empty -m empty &&
8 echo content >file1 &&
9 mkdir subdir &&
10 echo other content >subdir/file2 &&
11 git add . &&
12 git commit -m one
15 check_diff() {
16 expect=$1; shift
17 cat >expected <<EOF
18 diff --git a/$expect b/$expect
19 new file mode 100644
20 index 0000000..25c05ef
21 --- /dev/null
22 +++ b/$expect
23 @@ -0,0 +1 @@
24 +other content
25 EOF
26 test_expect_success "-p $*" "
27 git diff -p $* HEAD^ >actual &&
28 test_cmp expected actual
32 check_stat() {
33 expect=$1; shift
34 cat >expected <<EOF
35 $expect | 1 +
36 1 files changed, 1 insertions(+), 0 deletions(-)
37 EOF
38 test_expect_success "--stat $*" "
39 git diff --stat $* HEAD^ >actual &&
40 test_cmp expected actual
44 check_raw() {
45 expect=$1; shift
46 cat >expected <<EOF
47 :000000 100644 0000000000000000000000000000000000000000 25c05ef3639d2d270e7fe765a67668f098092bc5 A $expect
48 EOF
49 test_expect_success "--raw $*" "
50 git diff --no-abbrev --raw $* HEAD^ >actual &&
51 test_cmp expected actual
55 for type in diff stat raw; do
56 check_$type file2 --relative=subdir/
57 check_$type file2 --relative=subdir
58 check_$type dir/file2 --relative=sub
59 done
61 test_done