]>
Commit | Line | Data |
---|---|---|
5dbd7676 NTND |
1 | #!/bin/sh |
2 | ||
3 | test_description='push from/to a shallow clone' | |
4 | ||
5 | . ./test-lib.sh | |
6 | ||
7 | commit() { | |
8 | echo "$1" >tracked && | |
9 | git add tracked && | |
10 | git commit -m "$1" | |
11 | } | |
12 | ||
13 | test_expect_success 'setup' ' | |
14 | git config --global transfer.fsckObjects true && | |
15 | commit 1 && | |
16 | commit 2 && | |
17 | commit 3 && | |
18 | commit 4 && | |
19 | ( | |
20 | git init full-abc && | |
21 | cd full-abc && | |
22 | commit a && | |
23 | commit b && | |
24 | commit c | |
25 | ) && | |
26 | git clone --no-local --depth=2 .git shallow && | |
27 | git --git-dir=shallow/.git log --format=%s >actual && | |
28 | cat <<EOF >expect && | |
29 | 4 | |
30 | 3 | |
31 | EOF | |
32 | test_cmp expect actual && | |
33 | git clone --no-local --depth=2 full-abc/.git shallow2 && | |
34 | git --git-dir=shallow2/.git log --format=%s >actual && | |
35 | cat <<EOF >expect && | |
36 | c | |
37 | b | |
38 | EOF | |
39 | test_cmp expect actual | |
40 | ' | |
41 | ||
42 | test_expect_success 'push from shallow clone' ' | |
43 | ( | |
44 | cd shallow && | |
45 | commit 5 && | |
46 | git push ../.git +master:refs/remotes/shallow/master | |
47 | ) && | |
48 | git log --format=%s shallow/master >actual && | |
49 | git fsck && | |
50 | cat <<EOF >expect && | |
51 | 5 | |
52 | 4 | |
53 | 3 | |
54 | 2 | |
55 | 1 | |
56 | EOF | |
57 | test_cmp expect actual | |
58 | ' | |
59 | ||
60 | test_expect_success 'push from shallow clone, with grafted roots' ' | |
61 | ( | |
62 | cd shallow2 && | |
63 | test_must_fail git push ../.git +master:refs/remotes/shallow2/master 2>err && | |
64 | grep "shallow2/master.*shallow update not allowed" err | |
65 | ) && | |
66 | test_must_fail git rev-parse shallow2/master && | |
67 | git fsck | |
68 | ' | |
69 | ||
70 | test_done |