Merge branch 'sb/submodule-path-misc-bugs'

"git submodule" reports the paths of submodules the command
recurses into, but this was incorrect when the command was not run
from the root level of the superproject.

* sb/submodule-path-misc-bugs:
  t7407: make expectation as clear as possible
  submodule update: test recursive path reporting from subdirectory
  submodule update: align reporting path for custom command execution
  submodule status: correct path handling in recursive submodules
  submodule update --init: correct path handling in recursive submodules
  submodule foreach: correct path display in recursive submodules
This commit is contained in:
Junio C Hamano
2016-04-25 15:17:16 -07:00
3 changed files with 133 additions and 11 deletions

View File

@ -423,8 +423,8 @@ cmd_foreach()
die_if_unmatched "$mode"
if test -e "$sm_path"/.git
then
displaypath=$(relative_path "$sm_path")
say "$(eval_gettext "Entering '\$prefix\$displaypath'")"
displaypath=$(relative_path "$prefix$sm_path")
say "$(eval_gettext "Entering '\$displaypath'")"
name=$(git submodule--helper name "$sm_path")
(
prefix="$prefix$sm_path/"
@ -444,7 +444,7 @@ cmd_foreach()
cmd_foreach "--recursive" "$@"
fi
) <&3 3<&- ||
die "$(eval_gettext "Stopping at '\$prefix\$displaypath'; script returned non-zero status.")"
die "$(eval_gettext "Stopping at '\$displaypath'; script returned non-zero status.")"
fi
done
}
@ -483,7 +483,7 @@ cmd_init()
die_if_unmatched "$mode"
name=$(git submodule--helper name "$sm_path") || exit
displaypath=$(relative_path "$sm_path")
displaypath=$(relative_path "$prefix$sm_path")
# Copy url setting when it is not set yet
if test -z "$(git config "submodule.$name.url")"
@ -800,8 +800,8 @@ cmd_update()
;;
!*)
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
;;
*)
@ -1157,6 +1157,7 @@ cmd_status()
(
prefix="$displaypath/"
sanitize_submodule_env
wt_prefix=
cd "$sm_path" &&
eval cmd_status
) ||