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
index e46ddf6086..d262e9f823 100755
--- a/pushall
+++ b/pushall
@@ -1,10 +1,25 @@
#!/bin/sh
-# for remote in ko repo gph github2 sfjp sf.net
-for remote in ko repo gph github2 sfjp sf.net
+sites='ko repo github2 sfjp sf.net gph '
+
+while :
do
- printf "%s: " "$remote"
- git push --follow-tags "$remote" "$@" || exit $?
+ failed=
+ for remote in $sites
+ do
+ printf "%s: " "$remote"
+ git push --follow-tags "$remote" "$@" || failed="$failed$remote "
+ done
+
+ if test -z "$failed"
+ then
+ break
+ elif test "x$sites" = "x$failed"
+ then
+ echo >&2 "Failed to push to: $sites"
+ exit 1
+ fi
+ sites="$failed"
done
case "$#,$*" in