Thread (8 messages) 8 messages, 1 author, 2024-03-30
STALE822d

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

From: Rubén Justo <hidden>
Date: 2024-03-29 04:19:56
Subsystem: the rest · Maintainer: Linus Torvalds

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 <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help