]>
Commit | Line | Data |
---|---|---|
d9545c7f EW |
1 | #!/bin/sh |
2 | test_description='test git fast-import unpack limit' | |
3 | . ./test-lib.sh | |
4 | ||
5 | test_expect_success 'create loose objects on import' ' | |
6 | test_tick && | |
7 | cat >input <<-INPUT_END && | |
8 | commit refs/heads/master | |
9 | committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE | |
10 | data <<COMMIT | |
11 | initial | |
12 | COMMIT | |
13 | ||
14 | done | |
15 | INPUT_END | |
16 | ||
17 | git -c fastimport.unpackLimit=2 fast-import --done <input && | |
18 | git fsck --no-progress && | |
19 | test $(find .git/objects/?? -type f | wc -l) -eq 2 && | |
20 | test $(find .git/objects/pack -type f | wc -l) -eq 0 | |
21 | ' | |
22 | ||
23 | test_expect_success 'bigger packs are preserved' ' | |
24 | test_tick && | |
25 | cat >input <<-INPUT_END && | |
26 | commit refs/heads/master | |
27 | committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE | |
28 | data <<COMMIT | |
29 | incremental should create a pack | |
30 | COMMIT | |
31 | from refs/heads/master^0 | |
32 | ||
33 | commit refs/heads/branch | |
34 | committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE | |
35 | data <<COMMIT | |
36 | branch | |
37 | COMMIT | |
38 | ||
39 | done | |
40 | INPUT_END | |
41 | ||
42 | git -c fastimport.unpackLimit=2 fast-import --done <input && | |
43 | git fsck --no-progress && | |
44 | test $(find .git/objects/?? -type f | wc -l) -eq 2 && | |
45 | test $(find .git/objects/pack -type f | wc -l) -eq 2 | |
46 | ' | |
47 | ||
d2986d0f EW |
48 | test_expect_success 'lookups after checkpoint works' ' |
49 | hello_id=$(echo hello | git hash-object --stdin -t blob) && | |
50 | id="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" && | |
51 | before=$(git rev-parse refs/heads/master^0) && | |
52 | ( | |
53 | cat <<-INPUT_END && | |
54 | blob | |
55 | mark :1 | |
56 | data 6 | |
57 | hello | |
58 | ||
59 | commit refs/heads/master | |
60 | mark :2 | |
61 | committer $id | |
62 | data <<COMMIT | |
63 | checkpoint after this | |
64 | COMMIT | |
65 | from refs/heads/master^0 | |
66 | M 100644 :1 hello | |
67 | ||
68 | # pre-checkpoint | |
69 | cat-blob :1 | |
70 | cat-blob $hello_id | |
71 | checkpoint | |
72 | # post-checkpoint | |
73 | cat-blob :1 | |
74 | cat-blob $hello_id | |
75 | INPUT_END | |
76 | ||
77 | n=0 && | |
78 | from=$before && | |
79 | while test x"$from" = x"$before" | |
80 | do | |
81 | if test $n -gt 30 | |
82 | then | |
83 | echo >&2 "checkpoint did not update branch" | |
84 | exit 1 | |
85 | else | |
86 | n=$(($n + 1)) | |
87 | fi && | |
88 | sleep 1 && | |
89 | from=$(git rev-parse refs/heads/master^0) | |
90 | done && | |
91 | cat <<-INPUT_END && | |
92 | commit refs/heads/master | |
93 | committer $id | |
94 | data <<COMMIT | |
95 | make sure from "unpacked sha1 reference" works, too | |
96 | COMMIT | |
97 | from $from | |
98 | INPUT_END | |
99 | echo done | |
100 | ) | git -c fastimport.unpackLimit=100 fast-import --done && | |
101 | test $(find .git/objects/?? -type f | wc -l) -eq 6 && | |
102 | test $(find .git/objects/pack -type f | wc -l) -eq 2 | |
103 | ' | |
104 | ||
d9545c7f | 105 | test_done |