From: Junio C Hamano Date: Wed, 13 Jul 2011 21:31:35 +0000 (-0700) Subject: Merge branch 'fg/submodule-keep-updating' X-Git-Tag: v1.7.7-rc0~107 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ff968f03e6951e8ee84cfb923f8905296286134a;p=git.git Merge branch 'fg/submodule-keep-updating' * fg/submodule-keep-updating: git-submodule.sh: clarify the "should we die now" logic submodule update: continue when a checkout fails git-sh-setup: add die_with_status Conflicts: git-submodule.sh --- ff968f03e6951e8ee84cfb923f8905296286134a diff --cc git-submodule.sh index c571d320d,066d6b571..cfd5aa604 --- a/git-submodule.sh +++ b/git-submodule.sh @@@ -514,13 -512,15 +516,15 @@@ Maybe you want to use 'update --init'?" case "$update_module" in rebase) command="git rebase" - action="rebase" - msg="rebased onto" + die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$path'")" + say_msg="$(eval_gettext "Submodule path '\$path': rebased into '\$sha1'")" + must_die_on_failure=yes ;; merge) command="git merge" - action="merge" - msg="merged in" + die_msg="$(eval_gettext "Unable to merge '\$sha1' in submodule path '\$path'")" + say_msg="$(eval_gettext "Submodule path '\$path': merged in '\$sha1'")" + must_die_on_failure=yes ;; *) command="git checkout $subforce -q" @@@ -529,16 -529,50 +533,51 @@@ ;; esac - (clear_local_git_env; cd "$path" && $command "$sha1") || die $die_msg - say $say_msg + if (clear_local_git_env; cd "$path" && $command "$sha1") + then - say "Submodule path '$path': $msg '$sha1'" ++ say "$say_msg" + elif test -n "$must_die_on_failure" + then - die_with_status 2 "Unable to $action '$sha1' in submodule path '$path'" ++ die_with_status 2 "$die_msg" + else - err="${err};Failed to $action in submodule path '$path'" ++ err="${err};$die_msg" + continue + fi fi if test -n "$recursive" then - (clear_local_git_env; cd "$path" && eval cmd_update "$orig_flags") || - die "$(eval_gettext "Failed to recurse into submodule path '\$path'")" + (clear_local_git_env; cd "$path" && eval cmd_update "$orig_flags") + res=$? + if test $res -gt 0 + then ++ die_msg="$(eval_gettext "Failed to recurse into submodule path '\$path'")" + if test $res -eq 1 + then - err="${err};Failed to recurse into submodule path '$path'" ++ err="${err};$die_msg" + continue + else - die_with_status $res "Failed to recurse into submodule path '$path'" ++ die_with_status $res "$die_msg" + fi + fi fi done + + if test -n "$err" + then + OIFS=$IFS + IFS=';' + for e in $err + do + if test -n "$e" + then + echo >&2 "$e" + fi + done + IFS=$OIFS + exit 1 + fi + } } set_name_rev () {