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.lehm...@web.de>

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()
                                cd "$sm_path" &&
-                               eval cmd_status "$orig_args"
+                               eval cmd_status "$orig_flags"
                        ) ||
                        die "$(eval_gettext "Failed to recurse into submodule 
path '\$sm_path'")"
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 &&
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to