Skip to content

Commit

Permalink
add: use advise_if_enabled for ADVICE_ADD_EMBEDDED_REPO
Browse files Browse the repository at this point in the history
By following a similar reasoning as in previous commits, there are no
reason why we should not use the advise_if_enabled() API to display the
ADVICE_ADD_EMBEDDED_REPO advice.

This advice was introduced in 5321399 (add: warn when adding an
embedded repository, 2017-06-14).  Some tests were included in the
commit, but none is testing this advice.  Which, note, we only want to
display once per run.

So, use the advise_if_enabled() machinery to show the
ADVICE_ADD_EMBEDDED_REPO advice and include a test to notice any
possible breakage.

Signed-off-by: Junio C Hamano <[email protected]>
Signed-off-by: Rubén Justo <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
rjusto authored and gitster committed Mar 31, 2024
1 parent 1028db0 commit 6412d01
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
6 changes: 3 additions & 3 deletions builtin/add.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
34 changes: 34 additions & 0 deletions t/t3700-add.sh
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,40 @@ test_expect_success '"git add ." in empty repo' '
)
'

test_expect_success '"git add" a embedded repository' '
rm -fr outer && git init outer &&
(
cd outer &&
for i in 1 2
do
name=inner$i &&
git init $name &&
git -C $name commit --allow-empty -m $name ||
return 1
done &&
git add . 2>actual &&
cat >expect <<-EOF &&
warning: adding embedded git repository: inner1
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> inner1
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached inner1
hint:
hint: See "git help submodule" for more information.
hint: Disable this message with "git config advice.addEmbeddedRepo false"
warning: adding embedded git repository: inner2
EOF
test_cmp expect actual
)
'

test_expect_success 'error on a repository with no commits' '
rm -fr empty &&
git init empty &&
Expand Down

0 comments on commit 6412d01

Please sign in to comment.