Earlier the decision to stop or continue was made on the $action variable
that was set by inspecting $update_module variable. The former is a
redundant variable and will be removed in another topic.
Decide upon inspecting $update_module if a failure should cascade up to
cause us immediately stop, and use a variable that means just that, to
clarify the logic.
Incidentally this also makes the merge with the other topic slightly
easier and cleaner to understand.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
update_module= ;;
esac
+ must_die_on_failure=
case "$update_module" in
rebase)
command="git rebase"
action="rebase"
msg="rebased onto"
+ must_die_on_failure=yes
;;
merge)
command="git merge"
action="merge"
msg="merged in"
+ must_die_on_failure=yes
;;
*)
command="git checkout $subforce -q"
if (clear_local_git_env; cd "$path" && $command "$sha1")
then
say "Submodule path '$path': $msg '$sha1'"
+ elif test -n "$must_die_on_failure"
+ then
+ die_with_status 2 "Unable to $action '$sha1' in submodule path '$path'"
else
- case $action in
- rebase|merge)
- die_with_status 2 "Unable to $action '$sha1' in submodule path '$path'"
- ;;
- *)
- err="${err};Failed to $action in submodule path '$path'"
- continue
- ;;
- esac
+ err="${err};Failed to $action in submodule path '$path'"
+ continue
fi
fi