git-submodule.sh: clarify the "should we die now" logic
authorJunio C Hamano <gitster@pobox.com>
Mon, 13 Jun 2011 19:17:52 +0000 (12:17 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Jun 2011 19:18:29 +0000 (12:18 -0700)
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>
git-submodule.sh

index eb5eebcd9685b399863e368ec674e2897f3650e4..066d6b57160ab93f65bf5893cc8d355fbf237982 100755 (executable)
@@ -508,16 +508,19 @@ cmd_update()
                                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"
@@ -529,16 +532,12 @@ cmd_update()
                        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