Code

fetch/clone: check return status from ls-remote
authorJunio C Hamano <junkio@cox.net>
Mon, 10 Jul 2006 10:34:34 +0000 (03:34 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 14 Jul 2006 06:10:21 +0000 (23:10 -0700)
Some callers of ls-remote did not check its return status.

git-clone.sh
git-fetch.sh

index 036880388370a955deba19da1194600a420baef4..a92b22a13d6b2932a8d816a8845d791c2f0e36d1 100755 (executable)
@@ -266,7 +266,7 @@ yes,yes)
            echo "$repo/objects" >> "$GIT_DIR/objects/info/alternates"
            ;;
        esac
-       git-ls-remote "$repo" >"$GIT_DIR/CLONE_HEAD"
+       git-ls-remote "$repo" >"$GIT_DIR/CLONE_HEAD" || exit 1
        ;;
 *)
        case "$repo" in
@@ -296,7 +296,7 @@ yes,yes)
                    done
                    rm -f "$GIT_DIR/TMP_ALT"
                fi
-               git-ls-remote "$repo" >"$GIT_DIR/CLONE_HEAD"
+               git-ls-remote "$repo" >"$GIT_DIR/CLONE_HEAD" || exit 1
                ;;
        http://*)
                if test -z "@@NO_CURL@@"
index ff1769952b704d3ee3123395274da76e8f09a373..0c7a11d5658e29dcf1036afb4db4020226b8e033 100755 (executable)
@@ -223,9 +223,16 @@ reflist=$(get_remote_refs_for_fetch "$@")
 if test "$tags"
 then
        taglist=`IFS="  " &&
-                 git-ls-remote $upload_pack --tags "$remote" |
+                 (
+                       git-ls-remote $upload_pack --tags "$remote" ||
+                       echo fail ouch
+                 ) |
                  while read sha1 name
                  do
+                       case "$sha1" in
+                       fail)
+                               exit 1
+                       esac
                        case "$name" in
                        *^*) continue ;;
                        esac
@@ -235,7 +242,7 @@ then
                        else
                            echo >&2 "warning: tag ${name} ignored"
                        fi
-                 done`
+                 done` || exit
        if test "$#" -gt 1
        then
                # remote URL plus explicit refspecs; we need to merge them.