]>
Commit | Line | Data |
---|---|---|
f3999e03 BP |
1 | #!/bin/sh |
2 | ||
3 | test_description='diff --no-index' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'setup' ' | |
8 | mkdir a && | |
9 | mkdir b && | |
10 | echo 1 >a/1 && | |
546e0fd9 JK |
11 | echo 2 >a/2 && |
12 | git init repo && | |
13 | echo 1 >repo/a && | |
14 | mkdir -p non/git && | |
15 | echo 1 >non/git/a && | |
16 | echo 1 >non/git/b | |
f3999e03 BP |
17 | ' |
18 | ||
19 | test_expect_success 'git diff --no-index directories' ' | |
c21fc9d0 JK |
20 | test_expect_code 1 git diff --no-index a b >cnt && |
21 | test_line_count = 14 cnt | |
f3999e03 BP |
22 | ' |
23 | ||
546e0fd9 JK |
24 | test_expect_success 'git diff --no-index relative path outside repo' ' |
25 | ( | |
26 | cd repo && | |
27 | test_expect_code 0 git diff --no-index a ../non/git/a && | |
28 | test_expect_code 0 git diff --no-index ../non/git/a ../non/git/b | |
29 | ) | |
30 | ' | |
31 | ||
6df5762d TG |
32 | test_expect_success 'git diff --no-index with broken index' ' |
33 | ( | |
34 | cd repo && | |
35 | echo broken >.git/index && | |
36 | git diff --no-index a ../non/git/a | |
37 | ) | |
38 | ' | |
39 | ||
40 | test_expect_success 'git diff outside repo with broken index' ' | |
41 | ( | |
42 | cd repo && | |
43 | git diff ../non/git/a ../non/git/b | |
44 | ) | |
45 | ' | |
46 | ||
8a19dfa1 TG |
47 | test_expect_success 'git diff --no-index executed outside repo gives correct error message' ' |
48 | ( | |
49 | GIT_CEILING_DIRECTORIES=$TRASH_DIRECTORY/non && | |
50 | export GIT_CEILING_DIRECTORIES && | |
51 | cd non/git && | |
52 | test_must_fail git diff --no-index a 2>actual.err && | |
53 | echo "usage: git diff --no-index <path> <path>" >expect.err && | |
54 | test_cmp expect.err actual.err | |
55 | ) | |
56 | ' | |
57 | ||
c9e1f2c7 JH |
58 | test_expect_success 'diff D F and diff F D' ' |
59 | ( | |
60 | cd repo && | |
61 | echo in-repo >a && | |
62 | echo non-repo >../non/git/a && | |
63 | mkdir sub && | |
64 | echo sub-repo >sub/a && | |
65 | ||
66 | test_must_fail git diff --no-index sub/a ../non/git/a >expect && | |
67 | test_must_fail git diff --no-index sub/a ../non/git/ >actual && | |
68 | test_cmp expect actual && | |
69 | ||
70 | test_must_fail git diff --no-index a ../non/git/a >expect && | |
71 | test_must_fail git diff --no-index a ../non/git/ >actual && | |
72 | test_cmp expect actual && | |
73 | ||
74 | test_must_fail git diff --no-index ../non/git/a a >expect && | |
75 | test_must_fail git diff --no-index ../non/git a >actual && | |
76 | test_cmp expect actual | |
77 | ) | |
78 | ' | |
79 | ||
06151739 JH |
80 | test_expect_success 'turning a file into a directory' ' |
81 | ( | |
82 | cd non/git && | |
83 | mkdir d e e/sub && | |
84 | echo 1 >d/sub && | |
85 | echo 2 >e/sub/file && | |
86 | printf "D\td/sub\nA\te/sub/file\n" >expect && | |
87 | test_must_fail git diff --no-index --name-status d e >actual && | |
88 | test_cmp expect actual | |
89 | ) | |
90 | ' | |
91 | ||
f3999e03 | 92 | test_done |