]> git.ipfire.org Git - thirdparty/git.git/blob - t/t5501-fetch-push-alternates.sh
Start the 2.46 cycle
[thirdparty/git.git] / t / t5501-fetch-push-alternates.sh
1 #!/bin/sh
2
3 test_description='fetch/push involving alternates'
4 . ./test-lib.sh
5
6 count_objects () {
7 loose=0 inpack=0
8 eval "$(
9 git count-objects -v |
10 sed -n -e 's/^count: \(.*\)/loose=\1/p' \
11 -e 's/^in-pack: \(.*\)/inpack=\1/p'
12 )" &&
13 echo $(( $loose + $inpack ))
14 }
15
16
17 test_expect_success setup '
18 (
19 git init original &&
20 cd original &&
21 i=0 &&
22 while test $i -le 100
23 do
24 echo "$i" >count &&
25 git add count &&
26 git commit -m "$i" || exit
27 i=$(($i + 1))
28 done
29 ) &&
30 (
31 git clone --reference=original "file://$(pwd)/original" one &&
32 cd one &&
33 echo Z >count &&
34 git add count &&
35 git commit -m Z &&
36 count_objects >../one.count
37 ) &&
38 A=$(pwd)/original/.git/objects &&
39 git init receiver &&
40 echo "$A" >receiver/.git/objects/info/alternates &&
41 git init fetcher &&
42 echo "$A" >fetcher/.git/objects/info/alternates
43 '
44
45 test_expect_success 'pushing into a repository with the same alternate' '
46 (
47 cd one &&
48 git push ../receiver master:refs/heads/it
49 ) &&
50 (
51 cd receiver &&
52 count_objects >../receiver.count
53 ) &&
54 test_cmp one.count receiver.count
55 '
56
57 test_expect_success 'fetching from a repository with the same alternate' '
58 (
59 cd fetcher &&
60 git fetch ../one master:refs/heads/it &&
61 count_objects >../fetcher.count
62 ) &&
63 test_cmp one.count fetcher.count
64 '
65
66 test_done