submodule update: when using recursion, show full path
Previously when using update with recursion, only the path for the inner-most module was printed. Now the path is printed relative to the directory the command was started from. This now matches the behavior of submodule foreach. Signed-off-by: William Entriken <github.com@phor.net> Acked-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
e6363a4992
commit
75bf5e60e8
|
@ -588,7 +588,7 @@ cmd_update()
|
||||||
die_if_unmatched "$mode"
|
die_if_unmatched "$mode"
|
||||||
if test "$stage" = U
|
if test "$stage" = U
|
||||||
then
|
then
|
||||||
echo >&2 "Skipping unmerged submodule $sm_path"
|
echo >&2 "Skipping unmerged submodule $prefix$sm_path"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
name=$(module_name "$sm_path") || exit
|
name=$(module_name "$sm_path") || exit
|
||||||
|
@ -602,7 +602,7 @@ cmd_update()
|
||||||
|
|
||||||
if test "$update_module" = "none"
|
if test "$update_module" = "none"
|
||||||
then
|
then
|
||||||
echo "Skipping submodule '$sm_path'"
|
echo "Skipping submodule '$prefix$sm_path'"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -611,7 +611,7 @@ cmd_update()
|
||||||
# Only mention uninitialized submodules when its
|
# Only mention uninitialized submodules when its
|
||||||
# path have been specified
|
# path have been specified
|
||||||
test "$#" != "0" &&
|
test "$#" != "0" &&
|
||||||
say "$(eval_gettext "Submodule path '\$sm_path' not initialized
|
say "$(eval_gettext "Submodule path '\$prefix\$sm_path' not initialized
|
||||||
Maybe you want to use 'update --init'?")"
|
Maybe you want to use 'update --init'?")"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
@ -624,7 +624,7 @@ Maybe you want to use 'update --init'?")"
|
||||||
else
|
else
|
||||||
subsha1=$(clear_local_git_env; cd "$sm_path" &&
|
subsha1=$(clear_local_git_env; cd "$sm_path" &&
|
||||||
git rev-parse --verify HEAD) ||
|
git rev-parse --verify HEAD) ||
|
||||||
die "$(eval_gettext "Unable to find current revision in submodule path '\$sm_path'")"
|
die "$(eval_gettext "Unable to find current revision in submodule path '\$prefix\$sm_path'")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$subsha1" != "$sha1" -o -n "$force"
|
if test "$subsha1" != "$sha1" -o -n "$force"
|
||||||
|
@ -643,7 +643,7 @@ Maybe you want to use 'update --init'?")"
|
||||||
(clear_local_git_env; cd "$sm_path" &&
|
(clear_local_git_env; cd "$sm_path" &&
|
||||||
( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
|
( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) &&
|
||||||
test -z "$rev") || git-fetch)) ||
|
test -z "$rev") || git-fetch)) ||
|
||||||
die "$(eval_gettext "Unable to fetch in submodule path '\$sm_path'")"
|
die "$(eval_gettext "Unable to fetch in submodule path '\$prefix\$sm_path'")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Is this something we just cloned?
|
# Is this something we just cloned?
|
||||||
|
@ -657,20 +657,20 @@ Maybe you want to use 'update --init'?")"
|
||||||
case "$update_module" in
|
case "$update_module" in
|
||||||
rebase)
|
rebase)
|
||||||
command="git rebase"
|
command="git rebase"
|
||||||
die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$sm_path'")"
|
die_msg="$(eval_gettext "Unable to rebase '\$sha1' in submodule path '\$prefix\$sm_path'")"
|
||||||
say_msg="$(eval_gettext "Submodule path '\$sm_path': rebased into '\$sha1'")"
|
say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': rebased into '\$sha1'")"
|
||||||
must_die_on_failure=yes
|
must_die_on_failure=yes
|
||||||
;;
|
;;
|
||||||
merge)
|
merge)
|
||||||
command="git merge"
|
command="git merge"
|
||||||
die_msg="$(eval_gettext "Unable to merge '\$sha1' in submodule path '\$sm_path'")"
|
die_msg="$(eval_gettext "Unable to merge '\$sha1' in submodule path '\$prefix\$sm_path'")"
|
||||||
say_msg="$(eval_gettext "Submodule path '\$sm_path': merged in '\$sha1'")"
|
say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': merged in '\$sha1'")"
|
||||||
must_die_on_failure=yes
|
must_die_on_failure=yes
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
command="git checkout $subforce -q"
|
command="git checkout $subforce -q"
|
||||||
die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$sm_path'")"
|
die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$prefix\$sm_path'")"
|
||||||
say_msg="$(eval_gettext "Submodule path '\$sm_path': checked out '\$sha1'")"
|
say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': checked out '\$sha1'")"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -688,11 +688,16 @@ Maybe you want to use 'update --init'?")"
|
||||||
|
|
||||||
if test -n "$recursive"
|
if test -n "$recursive"
|
||||||
then
|
then
|
||||||
(clear_local_git_env; cd "$sm_path" && eval cmd_update "$orig_flags")
|
(
|
||||||
|
prefix="$prefix$sm_path/"
|
||||||
|
clear_local_git_env
|
||||||
|
cd "$sm_path" &&
|
||||||
|
eval cmd_update "$orig_flags"
|
||||||
|
)
|
||||||
res=$?
|
res=$?
|
||||||
if test $res -gt 0
|
if test $res -gt 0
|
||||||
then
|
then
|
||||||
die_msg="$(eval_gettext "Failed to recurse into submodule path '\$sm_path'")"
|
die_msg="$(eval_gettext "Failed to recurse into submodule path '\$prefix\$sm_path'")"
|
||||||
if test $res -eq 1
|
if test $res -eq 1
|
||||||
then
|
then
|
||||||
err="${err};$die_msg"
|
err="${err};$die_msg"
|
||||||
|
|
|
@ -612,7 +612,8 @@ test_expect_success 'submodule update places git-dir in superprojects git-dir re
|
||||||
rm -rf super_update_r2 &&
|
rm -rf super_update_r2 &&
|
||||||
git clone super_update_r super_update_r2 &&
|
git clone super_update_r super_update_r2 &&
|
||||||
(cd super_update_r2 &&
|
(cd super_update_r2 &&
|
||||||
git submodule update --init --recursive &&
|
git submodule update --init --recursive >actual &&
|
||||||
|
test_i18ngrep "Submodule path .submodule/subsubmodule.: checked out" actual &&
|
||||||
(cd submodule/subsubmodule &&
|
(cd submodule/subsubmodule &&
|
||||||
git log > ../../expected
|
git log > ../../expected
|
||||||
) &&
|
) &&
|
||||||
|
|
Loading…
Reference in New Issue