]>
Commit | Line | Data |
---|---|---|
091e04bc TG |
1 | #!/bin/sh |
2 | ||
3 | test_description='checkout --no-overlay <tree-ish> -- <pathspec>' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | test_expect_success 'setup' ' | |
8 | git commit --allow-empty -m "initial" | |
9 | ' | |
10 | ||
11 | test_expect_success 'checkout --no-overlay deletes files not in <tree-ish>' ' | |
12 | >file && | |
13 | mkdir dir && | |
14 | >dir/file1 && | |
15 | git add file dir/file1 && | |
16 | git checkout --no-overlay HEAD -- file && | |
17 | test_path_is_missing file && | |
18 | test_path_is_file dir/file1 | |
19 | ' | |
20 | ||
21 | test_expect_success 'checkout --no-overlay removing last file from directory' ' | |
22 | git checkout --no-overlay HEAD -- dir/file1 && | |
23 | test_path_is_missing dir | |
24 | ' | |
25 | ||
26 | test_expect_success 'checkout -p --overlay is disallowed' ' | |
27 | test_must_fail git checkout -p --overlay HEAD 2>actual && | |
28 | test_i18ngrep "fatal: -p and --overlay are mutually exclusive" actual | |
29 | ' | |
30 | ||
31 | test_expect_success '--no-overlay --theirs with D/F conflict deletes file' ' | |
32 | test_commit file1 file1 && | |
33 | test_commit file2 file2 && | |
34 | git rm --cached file1 && | |
35 | echo 1234 >file1 && | |
36 | F1=$(git rev-parse HEAD:file1) && | |
37 | F2=$(git rev-parse HEAD:file2) && | |
38 | { | |
39 | echo "100644 $F1 1 file1" && | |
40 | echo "100644 $F2 2 file1" | |
41 | } | git update-index --index-info && | |
42 | test_path_is_file file1 && | |
43 | git checkout --theirs --no-overlay -- file1 && | |
44 | test_path_is_missing file1 | |
45 | ' | |
46 | ||
47 | test_done |