[PATCH 3/3] add: use advise_if_enabled for ADVICE_ADD_EMBEDDED_REPO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Use the newer advise_if_enabled() machinery to show the advice.

We don't have a test for this.  Add one.

Signed-off-by: Rubén Justo <rjusto@xxxxxxxxx>
---
 builtin/add.c  |  6 +++---
 t/t3700-add.sh | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/builtin/add.c b/builtin/add.c
index 289adaaecf..e97699d6b9 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -310,9 +310,9 @@ static void check_embedded_repo(const char *path)
 	strbuf_strip_suffix(&name, "/");
 
 	warning(_("adding embedded git repository: %s"), name.buf);
-	if (!adviced_on_embedded_repo &&
-	    advice_enabled(ADVICE_ADD_EMBEDDED_REPO)) {
-		advise(embedded_advice, name.buf, name.buf);
+	if (!adviced_on_embedded_repo) {
+		advise_if_enabled(ADVICE_ADD_EMBEDDED_REPO,
+				  embedded_advice, name.buf, name.buf);
 		adviced_on_embedded_repo = 1;
 	}
 
diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index 681081e0d5..2b92f3eb5b 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -349,6 +349,38 @@ test_expect_success '"git add ." in empty repo' '
 	)
 '
 
+test_expect_success '"git add" a nested repository' '
+	rm -fr empty &&
+	git init empty &&
+	(
+		cd empty &&
+		git init empty &&
+		(
+			cd empty &&
+			git commit --allow-empty -m "foo"
+		) &&
+		git add empty 2>actual &&
+		cat >expect <<-EOF &&
+		warning: adding embedded git repository: empty
+		hint: You${SQ}ve added another git repository inside your current repository.
+		hint: Clones of the outer repository will not contain the contents of
+		hint: the embedded repository and will not know how to obtain it.
+		hint: If you meant to add a submodule, use:
+		hint: 
+		hint: 	git submodule add <url> empty
+		hint: 
+		hint: If you added this path by mistake, you can remove it from the
+		hint: index with:
+		hint: 
+		hint: 	git rm --cached empty
+		hint: 
+		hint: See "git help submodule" for more information.
+		hint: Disable this message with "git config advice.addEmbeddedRepo false"
+		EOF
+		test_cmp expect actual
+	)
+'
+
 test_expect_success 'error on a repository with no commits' '
 	rm -fr empty &&
 	git init empty &&
-- 
2.44.0.371.gf9813d4ed5





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux