Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 99 lines (84 sloc) 2.023 kb
#!/bin/sh
test_description='git remote group handling'
. ./test-lib.sh
mark() {
echo "$1" >mark
}
update_repo() {
(cd $1 &&
echo content >>file &&
git add file &&
git commit -F ../mark)
}
update_repos() {
update_repo one $1 &&
update_repo two $1
}
repo_fetched() {
if test "`git log -1 --pretty=format:%s $1 --`" = "`cat mark`"; then
echo >&2 "repo was fetched: $1"
return 0
fi
echo >&2 "repo was not fetched: $1"
return 1
}
test_expect_success 'setup' '
mkdir one && (cd one && git init) &&
mkdir two && (cd two && git init) &&
git remote add -m master one one &&
git remote add -m master two two
'
test_expect_success 'no group updates all' '
mark update-all &&
update_repos &&
git remote update &&
repo_fetched one &&
repo_fetched two
'
test_expect_success 'nonexistent group produces error' '
mark nonexistent &&
update_repos &&
test_must_fail git remote update nonexistent &&
! repo_fetched one &&
! repo_fetched two
'
test_expect_success 'updating group updates all members (remote update)' '
mark group-all &&
update_repos &&
git config --add remotes.all one &&
git config --add remotes.all two &&
git remote update all &&
repo_fetched one &&
repo_fetched two
'
test_expect_success 'updating group updates all members (fetch)' '
mark fetch-group-all &&
update_repos &&
git fetch all &&
repo_fetched one &&
repo_fetched two
'
test_expect_success 'updating group does not update non-members (remote update)' '
mark group-some &&
update_repos &&
git config --add remotes.some one &&
git remote update some &&
repo_fetched one &&
! repo_fetched two
'
test_expect_success 'updating group does not update non-members (fetch)' '
mark fetch-group-some &&
update_repos &&
git config --add remotes.some one &&
git remote update some &&
repo_fetched one &&
! repo_fetched two
'
test_expect_success 'updating remote name updates that remote' '
mark remote-name &&
update_repos &&
git remote update one &&
repo_fetched one &&
! repo_fetched two
'
test_done
Jump to Line
Something went wrong with that request. Please try again.