]>
Commit | Line | Data |
---|---|---|
0c66d6be AR |
1 | #!/bin/sh |
2 | ||
3 | test_description='Return value of diffs' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'setup' ' | |
8 | echo 1 >a && | |
9 | git add . && | |
10 | git commit -m first && | |
11 | echo 2 >b && | |
12 | git add . && | |
304970dd TH |
13 | git commit -a -m second && |
14 | mkdir -p test-outside/repo && ( | |
15 | cd test-outside/repo && | |
16 | git init && | |
17 | echo "1 1" >a && | |
18 | git add . && | |
19 | git commit -m 1 | |
20 | ) && | |
21 | mkdir -p test-outside/non/git && ( | |
22 | cd test-outside/non/git && | |
23 | echo "1 1" >a && | |
24 | echo "1 1" >matching-file && | |
25 | echo "1 1 " >trailing-space && | |
26 | echo "1 1" >extra-space && | |
27 | echo "2" >never-match | |
28 | ) | |
0c66d6be AR |
29 | ' |
30 | ||
31 | test_expect_success 'git diff-tree HEAD^ HEAD' ' | |
32 | git diff-tree --quiet HEAD^ HEAD >cnt | |
3fb0459b | 33 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
34 | ' |
35 | test_expect_success 'git diff-tree HEAD^ HEAD -- a' ' | |
36 | git diff-tree --quiet HEAD^ HEAD -- a >cnt | |
3fb0459b | 37 | test $? = 0 && test_line_count = 0 cnt |
0c66d6be AR |
38 | ' |
39 | test_expect_success 'git diff-tree HEAD^ HEAD -- b' ' | |
40 | git diff-tree --quiet HEAD^ HEAD -- b >cnt | |
3fb0459b | 41 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
42 | ' |
43 | # this diff outputs one line: sha1 of the given head | |
44 | test_expect_success 'echo HEAD | git diff-tree --stdin' ' | |
45 | echo $(git rev-parse HEAD) | git diff-tree --quiet --stdin >cnt | |
3fb0459b | 46 | test $? = 1 && test_line_count = 1 cnt |
0c66d6be AR |
47 | ' |
48 | test_expect_success 'git diff-tree HEAD HEAD' ' | |
49 | git diff-tree --quiet HEAD HEAD >cnt | |
3fb0459b | 50 | test $? = 0 && test_line_count = 0 cnt |
0c66d6be AR |
51 | ' |
52 | test_expect_success 'git diff-files' ' | |
53 | git diff-files --quiet >cnt | |
3fb0459b | 54 | test $? = 0 && test_line_count = 0 cnt |
0c66d6be AR |
55 | ' |
56 | test_expect_success 'git diff-index --cached HEAD' ' | |
57 | git diff-index --quiet --cached HEAD >cnt | |
3fb0459b | 58 | test $? = 0 && test_line_count = 0 cnt |
0c66d6be AR |
59 | ' |
60 | test_expect_success 'git diff-index --cached HEAD^' ' | |
61 | git diff-index --quiet --cached HEAD^ >cnt | |
3fb0459b | 62 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
63 | ' |
64 | test_expect_success 'git diff-index --cached HEAD^' ' | |
65 | echo text >>b && | |
66 | echo 3 >c && | |
67 | git add . && { | |
68 | git diff-index --quiet --cached HEAD^ >cnt | |
3fb0459b | 69 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
70 | } |
71 | ' | |
72 | test_expect_success 'git diff-tree -Stext HEAD^ HEAD -- b' ' | |
73 | git commit -m "text in b" && { | |
74 | git diff-tree --quiet -Stext HEAD^ HEAD -- b >cnt | |
3fb0459b | 75 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
76 | } |
77 | ' | |
78 | test_expect_success 'git diff-tree -Snot-found HEAD^ HEAD -- b' ' | |
79 | git diff-tree --quiet -Snot-found HEAD^ HEAD -- b >cnt | |
3fb0459b | 80 | test $? = 0 && test_line_count = 0 cnt |
0c66d6be AR |
81 | ' |
82 | test_expect_success 'git diff-files' ' | |
83 | echo 3 >>c && { | |
84 | git diff-files --quiet >cnt | |
3fb0459b | 85 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
86 | } |
87 | ' | |
88 | test_expect_success 'git diff-index --cached HEAD' ' | |
89 | git update-index c && { | |
90 | git diff-index --quiet --cached HEAD >cnt | |
3fb0459b | 91 | test $? = 1 && test_line_count = 0 cnt |
0c66d6be AR |
92 | } |
93 | ' | |
94 | ||
304970dd TH |
95 | test_expect_success 'git diff, one file outside repo' ' |
96 | ( | |
97 | cd test-outside/repo && | |
98 | test_expect_code 0 git diff --quiet a ../non/git/matching-file && | |
99 | test_expect_code 1 git diff --quiet a ../non/git/extra-space | |
100 | ) | |
101 | ' | |
102 | ||
103 | test_expect_success 'git diff, both files outside repo' ' | |
104 | ( | |
105 | GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" && | |
106 | export GIT_CEILING_DIRECTORIES && | |
107 | cd test-outside/non/git && | |
108 | test_expect_code 0 git diff --quiet a matching-file && | |
109 | test_expect_code 1 git diff --quiet a extra-space | |
110 | ) | |
111 | ' | |
112 | ||
113 | test_expect_success 'git diff --ignore-space-at-eol, one file outside repo' ' | |
114 | ( | |
115 | cd test-outside/repo && | |
116 | test_expect_code 0 git diff --quiet --ignore-space-at-eol a ../non/git/trailing-space && | |
117 | test_expect_code 1 git diff --quiet --ignore-space-at-eol a ../non/git/extra-space | |
118 | ) | |
119 | ' | |
120 | ||
121 | test_expect_success 'git diff --ignore-space-at-eol, both files outside repo' ' | |
122 | ( | |
123 | GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" && | |
124 | export GIT_CEILING_DIRECTORIES && | |
125 | cd test-outside/non/git && | |
126 | test_expect_code 0 git diff --quiet --ignore-space-at-eol a trailing-space && | |
127 | test_expect_code 1 git diff --quiet --ignore-space-at-eol a extra-space | |
128 | ) | |
129 | ' | |
130 | ||
131 | test_expect_success 'git diff --ignore-all-space, one file outside repo' ' | |
132 | ( | |
133 | cd test-outside/repo && | |
134 | test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/trailing-space && | |
135 | test_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/extra-space && | |
136 | test_expect_code 1 git diff --quiet --ignore-all-space a ../non/git/never-match | |
137 | ) | |
138 | ' | |
139 | ||
140 | test_expect_success 'git diff --ignore-all-space, both files outside repo' ' | |
141 | ( | |
142 | GIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" && | |
143 | export GIT_CEILING_DIRECTORIES && | |
144 | cd test-outside/non/git && | |
145 | test_expect_code 0 git diff --quiet --ignore-all-space a trailing-space && | |
146 | test_expect_code 0 git diff --quiet --ignore-all-space a extra-space && | |
147 | test_expect_code 1 git diff --quiet --ignore-all-space a never-match | |
148 | ) | |
149 | ' | |
150 | ||
0c66d6be | 151 | test_done |