aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-11-25 01:04:28 -0800
committerJunio C Hamano <junkio@cox.net>2006-11-25 01:04:28 -0800
commitf64d7fd267c501f501e18a888e3e1e0c5b56458f (patch)
treec366777d265bf962dccc7668e3475bc5b07a7b03
parentd25c26e771fdf771f264dc85be348719886d354f (diff)
downloadgit-f64d7fd267c501f501e18a888e3e1e0c5b56458f.tar.gz
git-f64d7fd267c501f501e18a888e3e1e0c5b56458f.tar.xz
git-fetch: exit with non-zero status when fast-forward check fails
When update_local_ref() refuses to update a branch head due to fast-forward check, it was not propagated properly in the call chain and the command did not exit with non-zero status as a result. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-fetch.sh11
1 files changed, 6 insertions, 5 deletions
diff --git a/git-fetch.sh b/git-fetch.sh
index eb32476bb..442556209 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -359,7 +359,7 @@ fetch_main () {
esac
append_fetch_head "$head" "$remote" \
- "$remote_name" "$remote_nick" "$local_name" "$not_for_merge"
+ "$remote_name" "$remote_nick" "$local_name" "$not_for_merge" || exit
done
@@ -413,15 +413,16 @@ fetch_main () {
done
local_name=$(expr "z$found" : 'z[^:]*:\(.*\)')
append_fetch_head "$sha1" "$remote" \
- "$remote_name" "$remote_nick" "$local_name" "$not_for_merge"
- done
+ "$remote_name" "$remote_nick" "$local_name" \
+ "$not_for_merge" || exit
+ done &&
if [ "$pack_lockfile" ]; then rm -f "$pack_lockfile"; fi
) || exit ;;
esac
}
-fetch_main "$reflist"
+fetch_main "$reflist" || exit
# automated tag following
case "$no_tags$tags" in
@@ -449,7 +450,7 @@ case "$no_tags$tags" in
case "$taglist" in
'') ;;
?*)
- fetch_main "$taglist" ;;
+ fetch_main "$taglist" || exit ;;
esac
esac