Propagate errors from fetch-pack correctly to git-fetch.
authorJunio C Hamano <junkio@cox.net>
Tue, 13 Sep 2005 05:20:02 +0000 (22:20 -0700)
committerJunio C Hamano <junkio@cox.net>
Tue, 13 Sep 2005 05:52:52 +0000 (22:52 -0700)
When git-fetch-pack fails, the command does not notice the failure
and instead pretended nothing was fetched and there was nothing wrong.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-fetch.sh

index 673a184..2273944 100755 (executable)
@@ -205,9 +205,16 @@ case "$remote" in
 http://* | https://* | rsync://* )
     ;; # we are already done.
 *)
-    git-fetch-pack "$remote" $rref |
+    (
+       git-fetch-pack "$remote" $rref || echo failed "$remote"
+    ) |
     while read sha1 remote_name
     do
+       case "$sha1" in
+       failed)
+               echo >&2 "Fetch failure: $remote"
+               exit 1 ;;
+       esac
        found=
        single_force=
        for ref in $refs
@@ -225,7 +232,7 @@ http://* | https://* | rsync://* )
 
        local_name=$(expr "$found" : '[^:]*:\(.*\)')
        append_fetch_head "$sha1" "$remote" "$remote_name" "$remote_nick" "$local_name"
-    done
+    done || exit
     ;;
 esac