]>
Commit | Line | Data |
---|---|---|
d92a3959 MT |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2009, Red Hat Inc, Author: Michael S. Tsirkin (mst@redhat.com) | |
4 | # | |
5 | ||
6 | test_description='test clone --reference' | |
7 | . ./test-lib.sh | |
8 | ||
9 | base_dir=`pwd` | |
10 | ||
11 | U=$base_dir/UPLOAD_LOG | |
12 | ||
13 | test_expect_success 'preparing first repository' \ | |
14 | 'test_create_repo A && cd A && | |
15 | echo first > file1 && | |
16 | git add file1 && | |
17 | git commit -m A-initial' | |
18 | ||
19 | cd "$base_dir" | |
20 | ||
21 | test_expect_success 'preparing second repository' \ | |
22 | 'git clone A B && cd B && | |
23 | echo second > file2 && | |
24 | git add file2 && | |
25 | git commit -m B-addition && | |
26 | git repack -a -d && | |
27 | git prune' | |
28 | ||
29 | cd "$base_dir" | |
30 | ||
cb8ad289 | 31 | test_expect_success 'preparing superproject' \ |
d92a3959 MT |
32 | 'test_create_repo super && cd super && |
33 | echo file > file && | |
34 | git add file && | |
35 | git commit -m B-super-initial' | |
36 | ||
37 | cd "$base_dir" | |
38 | ||
39 | test_expect_success 'submodule add --reference' \ | |
40 | 'cd super && git submodule add --reference ../B "file://$base_dir/A" sub && | |
41 | git commit -m B-super-added' | |
42 | ||
43 | cd "$base_dir" | |
44 | ||
45 | test_expect_success 'after add: existence of info/alternates' \ | |
3fb0459b | 46 | 'test_line_count = 1 super/.git/modules/sub/objects/info/alternates' |
d92a3959 MT |
47 | |
48 | cd "$base_dir" | |
49 | ||
50 | test_expect_success 'that reference gets used with add' \ | |
51 | 'cd super/sub && | |
52 | echo "0 objects, 0 kilobytes" > expected && | |
53 | git count-objects > current && | |
54 | diff expected current' | |
55 | ||
56 | cd "$base_dir" | |
57 | ||
cb8ad289 | 58 | test_expect_success 'cloning superproject' \ |
d92a3959 MT |
59 | 'git clone super super-clone' |
60 | ||
61 | cd "$base_dir" | |
62 | ||
63 | test_expect_success 'update with reference' \ | |
64 | 'cd super-clone && git submodule update --init --reference ../B' | |
65 | ||
66 | cd "$base_dir" | |
67 | ||
68 | test_expect_success 'after update: existence of info/alternates' \ | |
3fb0459b | 69 | 'test_line_count = 1 super-clone/.git/modules/sub/objects/info/alternates' |
d92a3959 MT |
70 | |
71 | cd "$base_dir" | |
72 | ||
73 | test_expect_success 'that reference gets used with update' \ | |
74 | 'cd super-clone/sub && | |
75 | echo "0 objects, 0 kilobytes" > expected && | |
76 | git count-objects > current && | |
77 | diff expected current' | |
78 | ||
79 | cd "$base_dir" | |
80 | ||
81 | test_done |