Browse Source
* fg/remote-prune: add tests for remote groups git remote update: Fallback to remote if group does not exist remote: New function remote_is_configured() git remote update: Report error for non-existing groups git remote update: New option --prune builtin-remote.c: Split out prune_remote as a separate function.maint

5 changed files with 156 additions and 34 deletions
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
#!/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 'nonexistant group produces error' ' |
||||
mark nonexistant && |
||||
update_repos && |
||||
test_must_fail git remote update nonexistant && |
||||
! repo_fetched one && |
||||
! repo_fetched two |
||||
' |
||||
|
||||
test_expect_success 'updating group updates all members' ' |
||||
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 does not update non-members' ' |
||||
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 remote name updates that remote' ' |
||||
mark remote-name && |
||||
update_repos && |
||||
git remote update one && |
||||
repo_fetched one && |
||||
! repo_fetched two |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue