]> git.ipfire.org Git - thirdparty/git.git/blame - t/t5506-remote-groups.sh
Sync with Git 2.45.1
[thirdparty/git.git] / t / t5506-remote-groups.sh
CommitLineData
27845e95
JK
1#!/bin/sh
2
3test_description='git remote group handling'
3275f4e8 4GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
334afbc7
JS
5export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
6
e75d2f7f 7TEST_PASSES_SANITIZE_LEAK=true
27845e95
JK
8. ./test-lib.sh
9
10mark() {
11 echo "$1" >mark
12}
13
14update_repo() {
15 (cd $1 &&
16 echo content >>file &&
17 git add file &&
18 git commit -F ../mark)
19}
20
21update_repos() {
22 update_repo one $1 &&
23 update_repo two $1
24}
25
26repo_fetched() {
e15243cc 27 if test "$(git log -1 --pretty=format:%s $1 --)" = "$(cat mark)"; then
27845e95
JK
28 echo >&2 "repo was fetched: $1"
29 return 0
30 fi
31 echo >&2 "repo was not fetched: $1"
32 return 1
33}
34
35test_expect_success 'setup' '
36 mkdir one && (cd one && git init) &&
37 mkdir two && (cd two && git init) &&
3275f4e8
JS
38 git remote add -m main one one &&
39 git remote add -m main two two
27845e95
JK
40'
41
42test_expect_success 'no group updates all' '
43 mark update-all &&
44 update_repos &&
45 git remote update &&
46 repo_fetched one &&
47 repo_fetched two
48'
49
7be8b3ba
DI
50test_expect_success 'nonexistent group produces error' '
51 mark nonexistent &&
27845e95 52 update_repos &&
7be8b3ba 53 test_must_fail git remote update nonexistent &&
27845e95
JK
54 ! repo_fetched one &&
55 ! repo_fetched two
56'
57
9c4a036b 58test_expect_success 'updating group updates all members (remote update)' '
27845e95
JK
59 mark group-all &&
60 update_repos &&
61 git config --add remotes.all one &&
62 git config --add remotes.all two &&
63 git remote update all &&
64 repo_fetched one &&
65 repo_fetched two
66'
67
9c4a036b
BG
68test_expect_success 'updating group updates all members (fetch)' '
69 mark fetch-group-all &&
70 update_repos &&
71 git fetch all &&
72 repo_fetched one &&
73 repo_fetched two
74'
75
76test_expect_success 'updating group does not update non-members (remote update)' '
27845e95
JK
77 mark group-some &&
78 update_repos &&
79 git config --add remotes.some one &&
80 git remote update some &&
81 repo_fetched one &&
82 ! repo_fetched two
83'
84
9c4a036b
BG
85test_expect_success 'updating group does not update non-members (fetch)' '
86 mark fetch-group-some &&
87 update_repos &&
88 git config --add remotes.some one &&
89 git remote update some &&
90 repo_fetched one &&
91 ! repo_fetched two
92'
93
27845e95
JK
94test_expect_success 'updating remote name updates that remote' '
95 mark remote-name &&
96 update_repos &&
97 git remote update one &&
98 repo_fetched one &&
99 ! repo_fetched two
100'
101
06a668cb
CW
102test_expect_success 'updating group in parallel with a duplicate remote does not fail (fetch)' '
103 mark fetch-group-duplicate &&
104 update_repo one &&
105 git config --add remotes.duplicate one &&
106 git config --add remotes.duplicate one &&
107 git -c fetch.parallel=2 remote update duplicate &&
108 repo_fetched one
109'
110
27845e95 111test_done