]>
Commit | Line | Data |
---|---|---|
c9a42c4a JS |
1 | #!/bin/sh |
2 | ||
3 | test_description='some bundle related tests' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success 'setup' ' | |
8a557bb7 | 7 | test_commit initial && |
c9a42c4a JS |
8 | test_tick && |
9 | git tag -m tag tag && | |
8a557bb7 TR |
10 | test_commit second && |
11 | test_commit third && | |
12 | git tag -d initial && | |
13 | git tag -d second && | |
14 | git tag -d third | |
c9a42c4a JS |
15 | ' |
16 | ||
2c8544ab LF |
17 | test_expect_success 'annotated tags can be excluded by rev-list options' ' |
18 | git bundle create bundle --all --since=7.Apr.2005.15:14:00.-0700 && | |
19 | git ls-remote bundle > output && | |
20 | grep tag output && | |
c9a42c4a JS |
21 | git bundle create bundle --all --since=7.Apr.2005.15:16:00.-0700 && |
22 | git ls-remote bundle > output && | |
23 | ! grep tag output | |
c9a42c4a JS |
24 | ' |
25 | ||
0f5cdf65 | 26 | test_expect_success 'die if bundle file cannot be created' ' |
0f5cdf65 CH |
27 | mkdir adir && |
28 | test_must_fail git bundle create adir --all | |
0f5cdf65 CH |
29 | ' |
30 | ||
f62e0a39 | 31 | test_expect_failure 'bundle --stdin' ' |
f62e0a39 JN |
32 | echo master | git bundle create stdin-bundle.bdl --stdin && |
33 | git ls-remote stdin-bundle.bdl >output && | |
34 | grep master output | |
f62e0a39 JN |
35 | ' |
36 | ||
37 | test_expect_failure 'bundle --stdin <rev-list options>' ' | |
f62e0a39 JN |
38 | echo master | git bundle create hybrid-bundle.bdl --stdin tag && |
39 | git ls-remote hybrid-bundle.bdl >output && | |
40 | grep master output | |
f62e0a39 JN |
41 | ' |
42 | ||
54440e15 | 43 | test_expect_success 'empty bundle file is rejected' ' |
8a557bb7 TR |
44 | : >empty-bundle && |
45 | test_must_fail git fetch empty-bundle | |
54440e15 BH |
46 | ' |
47 | ||
bc2fed49 TR |
48 | # This triggers a bug in older versions where the resulting line (with |
49 | # --pretty=oneline) was longer than a 1024-char buffer. | |
50 | test_expect_success 'ridiculously long subject in boundary' ' | |
51 | : >file4 && | |
52 | test_tick && | |
53 | git add file4 && | |
54 | printf "%01200d\n" 0 | git commit -F - && | |
55 | test_commit fifth && | |
56 | git bundle create long-subject-bundle.bdl HEAD^..HEAD && | |
57 | git bundle list-heads long-subject-bundle.bdl >heads && | |
58 | test -s heads && | |
59 | git fetch long-subject-bundle.bdl && | |
0dbe6592 TR |
60 | sed -n "/^-/{p;q;}" long-subject-bundle.bdl >boundary && |
61 | grep "^-[0-9a-f]\\{40\\} " boundary | |
bc2fed49 TR |
62 | ' |
63 | ||
5446e33f LF |
64 | test_expect_success 'prerequisites with an empty commit message' ' |
65 | : >file1 && | |
66 | git add file1 && | |
67 | test_tick && | |
68 | git commit --allow-empty-message -m "" && | |
69 | test_commit file2 && | |
70 | git bundle create bundle HEAD^.. && | |
71 | git bundle verify bundle | |
72 | ' | |
73 | ||
2c8ee1f5 JK |
74 | test_expect_success 'failed bundle creation does not leave cruft' ' |
75 | # This fails because the bundle would be empty. | |
76 | test_must_fail git bundle create fail.bundle master..master && | |
77 | test_path_is_missing fail.bundle.lock | |
78 | ' | |
79 | ||
c9a42c4a | 80 | test_done |