submodule update: use die_message()

Use die_message() to print the "fatal: " prefix instead of doing it in
git-submodule.sh and remove a now-unnecessary exit code from "git
submodule--helper run-update-procedure".

Also, since die_message() adds the newline for us, replace an invocation
of die_with_status() with printf + exit invocations that do not add a
newline, but are otherwise identical to die_with_status().

Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Glen Choo <chooglen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Glen Choo 2022-03-15 14:09:20 -07:00 коммит произвёл Junio C Hamano
Родитель 3c3558f095
Коммит 55b3f12cb5
2 изменённых файлов: 19 добавлений и 23 удалений

Просмотреть файл

@ -2366,40 +2366,35 @@ static int run_update_command(struct update_data *ud, int subforce)
if (run_command(&cp)) { if (run_command(&cp)) {
switch (ud->update_strategy.type) { switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT: case SM_UPDATE_CHECKOUT:
printf(_("Unable to checkout '%s' in submodule path '%s'"), die_message(_("Unable to checkout '%s' in submodule path '%s'"),
oid, ud->displaypath); oid, ud->displaypath);
break; break;
case SM_UPDATE_REBASE: case SM_UPDATE_REBASE:
printf(_("Unable to rebase '%s' in submodule path '%s'"), die_message(_("Unable to rebase '%s' in submodule path '%s'"),
oid, ud->displaypath); oid, ud->displaypath);
break; break;
case SM_UPDATE_MERGE: case SM_UPDATE_MERGE:
printf(_("Unable to merge '%s' in submodule path '%s'"), die_message(_("Unable to merge '%s' in submodule path '%s'"),
oid, ud->displaypath); oid, ud->displaypath);
break; break;
case SM_UPDATE_COMMAND: case SM_UPDATE_COMMAND:
printf(_("Execution of '%s %s' failed in submodule path '%s'"), die_message(_("Execution of '%s %s' failed in submodule path '%s'"),
ud->update_strategy.command, oid, ud->displaypath); ud->update_strategy.command, oid, ud->displaypath);
break; break;
default: default:
BUG("unexpected update strategy type: %s", BUG("unexpected update strategy type: %s",
submodule_strategy_to_string(&ud->update_strategy)); submodule_strategy_to_string(&ud->update_strategy));
} }
/*
* NEEDSWORK: We are currently printing to stdout with error
* return so that the shell caller handles the error output
* properly. Once we start handling the error messages within
* C, we should use die() instead.
*/
if (must_die_on_failure) if (must_die_on_failure)
return 2; exit(128);
/*
* This signifies to the caller in shell that the command /* the command failed, but update must continue */
* failed without dying
*/
return 1; return 1;
} }
if (ud->quiet)
return 0;
switch (ud->update_strategy.type) { switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT: case SM_UPDATE_CHECKOUT:
printf(_("Submodule path '%s': checked out '%s'\n"), printf(_("Submodule path '%s': checked out '%s'\n"),

Просмотреть файл

@ -404,7 +404,7 @@ cmd_update()
# exit codes for run-update-procedure: # exit codes for run-update-procedure:
# 0: update was successful, say command output # 0: update was successful, say command output
# 1: update procedure failed, but should not die # 1: update procedure failed, but should not die
# 2 or 128: subcommand died during execution # 128: subcommand died during execution
# 3: no update procedure was run # 3: no update procedure was run
res="$?" res="$?"
case $res in case $res in
@ -412,11 +412,12 @@ cmd_update()
say "$out" say "$out"
;; ;;
1) 1)
err="${err};fatal: $out" err="${err};$out"
continue continue
;; ;;
2|128) 128)
die_with_status $res "fatal: $out" printf >&2 "$out"
exit $res
;; ;;
esac esac