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 now. This clears all options when recursing, as that variable is never set. Fix that by renaming orig_args to orig_flags there too and add a test to catch that bug. Signed-off-by: Jens Lehmann <Jens.Lehmann@xxxxxx> --- I noticed that when reviewing Phil's "Teach --recursive to submodule sync" patch. git-submodule.sh | 2 +- t/t7407-submodule-foreach.sh | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/git-submodule.sh b/git-submodule.sh index ab6b110..c089d48 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -990,7 +990,7 @@ cmd_status() prefix="$displaypath/" clear_local_git_env cd "$sm_path" && - eval cmd_status "$orig_args" + eval cmd_status "$orig_flags" ) || die "$(eval_gettext "Failed to recurse into submodule path '\$sm_path'")" fi diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh index 9b69fe2..eca36b5 100755 --- a/t/t7407-submodule-foreach.sh +++ b/t/t7407-submodule-foreach.sh @@ -245,6 +245,14 @@ test_expect_success 'ensure "status --cached --recursive" preserves the --cached test_cmp expect actual ' +test_expect_success 'ensure "status --quiet --recursive" preserves the --quiet flag' ' + ( + cd clone3 && + git submodule status --quiet --recursive -- nested1 > ../actual + ) && + ! test -s actual +' + test_expect_success 'use "git clone --recursive" to checkout all submodules' ' git clone --recursive super clone4 && ( -- 1.8.0.dirty -- 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