All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Clark <nick@ccl4.org>
To: git@vger.kernel.org
Cc: Nicholas Clark <nick@ccl4.org>
Subject: [PATCH] submodule update: silence underlying fetch with "--quiet"
Date: Fri, 30 Apr 2021 09:59:06 +0000	[thread overview]
Message-ID: <20210430095906.GG9170@etla.org> (raw)

Commands such as

    $ git submodule update --quiet --init --depth=1

involving shallow clones, call the shell function fetch_in_submodule, which
in turn invokes git fetch.  Pass the --quiet option onward there.

Signed-off-by: Nicholas Clark <nick@ccl4.org>
---
I tried to adopt the same approach as the previous commit that fixed a
--quiet bug, 3ad0401e9e (submodule update: silence underlying merge/rebase
with "--quiet", 2020-09-30)

I believe that the bugfix is correct but I struggled to create a concise
regression test demonstrates the bug and the bug fix.

That commit is not the only fix of a --quiet bug, so I'm wondering if there
are others still to find. I looked in git-submodule.sh and see many
invocations of git commands in git-submodule.sh, most of which don't pass
${GIT_QUIET:+--quiet} onward, but I don't know git well enough to know which
might matter (ie might generate output), and it feels like cargo-cult to
add that code unthinkingly to every git command, so I didn't do this.

 git-submodule.sh            |  4 ++--
 t/t7406-submodule-update.sh | 24 ++++++++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index eb90f18229..4678378424 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -420,9 +420,9 @@ fetch_in_submodule () (
 	cd "$1" &&
 	if test $# -eq 3
 	then
-		echo "$3" | git fetch --stdin ${2:+"$2"}
+		echo "$3" | git fetch ${GIT_QUIET:+--quiet} --stdin ${2:+"$2"}
 	else
-		git fetch ${2:+"$2"}
+		git fetch ${GIT_QUIET:+--quiet} ${2:+"$2"}
 	fi
 )
 
diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
index ff3ba5422e..f4f61fe554 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -1037,4 +1037,28 @@ test_expect_success 'submodule update --quiet passes quietness to merge/rebase'
 	)
 '
 
+test_expect_success 'submodule update --quiet passes quietness to fetch with a shallow clone' '
+	test_when_finished "rm -rf super4 super5 super6" &&
+	git clone . super4 &&
+	(cd super4 &&
+	 git submodule add --quiet file://"$TRASH_DIRECTORY"/submodule submodule3 &&
+	 git commit -am "setup submodule3"
+	) &&
+	(cd submodule &&
+	  test_commit line6 file
+	) &&
+	git clone super4 super5 &&
+	(cd super5 &&
+	 git submodule update --quiet --init --depth=1 submodule3 >out 2>err &&
+	 test_must_be_empty out &&
+	 test_must_be_empty err
+	) &&
+	git clone super4 super6 &&
+	(cd super6 &&
+	 git submodule update --init --depth=1 submodule3 >out 2>err &&
+	 test_file_not_empty out &&
+	 test_file_not_empty err
+	)
+'
+
 test_done
-- 
2.31.1


                 reply	other threads:[~2021-04-30 10:27 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210430095906.GG9170@etla.org \
    --to=nick@ccl4.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.