Meta/pushall: iterate and retry

Junio C Hamano committed Dec 20, 2013 at 15:01 UTC f93a65c60140ccf96f550dd60fafdfa1ba1d8ca9
1 file changed +19 -4
pushall
+19 -4
@@ -1,10 +1,25 @@
1 #!/bin/sh
2
3 -# for remote in ko repo gph github2 sfjp sf.net
4 -for remote in ko repo gph github2 sfjp sf.net
3 +sites='ko repo github2 sfjp sf.net gph '
4 +
5 +while :
6 do
6 - printf "%s: " "$remote"
7 - git push --follow-tags "$remote" "$@" || exit $?
7 + failed=
8 + for remote in $sites
9 + do
10 + printf "%s: " "$remote"
11 + git push --follow-tags "$remote" "$@" || failed="$failed$remote "
12 + done
13 +
14 + if test -z "$failed"
15 + then
16 + break
17 + elif test "x$sites" = "x$failed"
18 + then
19 + echo >&2 "Failed to push to: $sites"
20 + exit 1
21 + fi
22 + sites="$failed"
23 done
24
25 case "$#,$*" in