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