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