When renaming orig_args to orig_flags in 98dbe63d (submodule: only preserve flags across recursive status/update invocations) the call site of the recursive cmd_status was forgotten. At that place orig_args is still passed into the recursion, which is always empty since then. This did not break anything because the orig_flags logic is not needed at all when a function from the submodule script is called with eval, as that inherits all the variables set by the option parsing done in the first level of the recursion. Now that we know that orig_flags and orig_args aren't needed at all, let's just remove them from cmd_status(). Thanks-to: Phil Hord <hordp@xxxxxxxxx> Signed-off-by: Jens Lehmann <Jens.Lehmann@xxxxxx> --- Am 26.10.2012 21:29, schrieb Jens Lehmann: > Am 26.10.2012 21:13, schrieb Phil Hord: >> A test in t7404-submodule-foreach purports to test that >> the --cached flag is properly noticed by --recursive calls >> to the foreach command as it descends into nested >> submodules. However, the test really does not perform this >> test since the change it looks for is in a top-level >> submodule handled by the first invocation of the command. >> To properly test for the flag being passed to recursive >> invocations, the change must be buried deeper in the >> hierarchy. >> >> Move the change one level deeper so it properly verifies >> the recursive machinery of the 'git submodule status' >> command. > > Me thinks we should definitely do this. And I also think this patch should go on top of Phil's patch after what we learned so far. I'm currently checking if we can also safely remove orig_flags from cmd_update(). At least the test suite runs fine without it ... git-submodule.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/git-submodule.sh b/git-submodule.sh index ab6b110..c287464 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -926,7 +926,6 @@ cmd_summary() { cmd_status() { # parse $args after "submodule ... status". - orig_flags= while test $# -ne 0 do case "$1" in @@ -950,7 +949,6 @@ cmd_status() break ;; esac - orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")" shift done @@ -990,7 +988,7 @@ cmd_status() prefix="$displaypath/" clear_local_git_env cd "$sm_path" && - eval cmd_status "$orig_args" + eval cmd_status ) || die "$(eval_gettext "Failed to recurse into submodule path '\$sm_path'")" fi -- 1.8.0.42.g2ea983b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html