Re: [PATCH 4/6] submodule update: align reporting path for custom command execution
Stefan Beller <sbeller@google.com> writes:
> In the predefined actions (merge, rebase, none, checkout), we use
> the display path, which is relative to the current working directory.
> Also use the display path when running a custom command.
Show 68 quoted lines
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
> git-submodule.sh | 4 ++--
> t/t7406-submodule-update.sh | 29 ++++++++++++++++++++++++++---
> 2 files changed, 28 insertions(+), 5 deletions(-)
>
> diff --git a/git-submodule.sh b/git-submodule.sh
> index 11ed32a..be2a2b5 100755
> --- a/git-submodule.sh
> +++ b/git-submodule.sh
> @@ -803,8 +803,8 @@ Maybe you want to use 'update --init'?")"
> ;;
> !*)
> command="${update_module#!}"
> - die_msg="$(eval_gettext "Execution of '\$command \$sha1' failed in submodule path '\$prefix\$sm_path'")"
> - say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': '\$command \$sha1'")"
> + die_msg="$(eval_gettext "Execution of '\$command \$sha1' failed in submodule path '\$displaypath'")"
> + say_msg="$(eval_gettext "Submodule path '\$displaypath': '\$command \$sha1'")"
> must_die_on_failure=yes
> ;;
> *)
> diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
> index 9a4ba41..f062065 100755
> --- a/t/t7406-submodule-update.sh
> +++ b/t/t7406-submodule-update.sh
> @@ -344,16 +344,39 @@ test_expect_success 'submodule update - command in .git/config' '
> )
> '
>
> +cat << EOF >expect
> +Execution of 'false $submodulesha1' failed in submodule path 'submodule'
> +EOF
> +
> test_expect_success 'submodule update - command in .git/config catches failure' '
> (cd super &&
> git config submodule.submodule.update "!false"
> ) &&
> (cd super/submodule &&
> - git reset --hard HEAD^
> + git reset --hard $submodulesha1^
> ) &&
> (cd super &&
> - test_must_fail git submodule update submodule
> - )
> + test_must_fail git submodule update submodule 2>../actual
> + ) &&
> + test_cmp actual expect
> +'
> +
> +cat << EOF >expect
> +Execution of 'false $submodulesha1' failed in submodule path '../submodule'
> +EOF
> +
> +test_expect_success 'submodule update - command in .git/config catches failure -- subdirectory' '
> + (cd super &&
> + git config submodule.submodule.update "!false"
> + ) &&
> + (cd super/submodule &&
> + git reset --hard $submodulesha1^
> + ) &&
> + (cd super &&
> + mkdir tmp && cd tmp &&
> + test_must_fail git submodule update ../submodule 2>../../actual
> + ) &&
> + test_cmp actual expect
> '
>
> test_expect_success 'submodule init does not copy command into .git/config' '