Browse Source

submodule update: align reporting path for custom command execution

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.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Stefan Beller 9 years ago committed by Junio C Hamano
parent
commit
b08238ac3f
  1. 4
      git-submodule.sh
  2. 29
      t/t7406-submodule-update.sh

4
git-submodule.sh

@ -802,8 +802,8 @@ Maybe you want to use 'update --init'?")" @@ -802,8 +802,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
;;
*)

29
t/t7406-submodule-update.sh

@ -344,16 +344,39 @@ test_expect_success 'submodule update - command in .git/config' ' @@ -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' '

Loading…
Cancel
Save