From: Peter Kaestle <peter.kaestle@nokia.com>
To: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, Stefan Beller <sbeller@google.com>
Cc: peter.kaestle@nokia.com
Subject: [REGRESSION FIX 1/2] submodules: test for fetch of non-init subsub-repo
Date: Tue, 3 Nov 2020 15:23:18 +0100 [thread overview]
Message-ID: <1604413399-63090-2-git-send-email-peter.kaestle@nokia.com> (raw)
In-Reply-To: <1604413399-63090-1-git-send-email-peter.kaestle@nokia.com>
This test case triggers a regression, which was introduced by
a62387b3fc9f5aeeb04a2db278121d33a9caafa7 in following setup:
outer_repo/middle_repo/inner_repo and a change in the remote of
inner_repo happens. Then it's being fetched by a second clone of the
outer repo, in which the middle is initialized, but the inner is not.
This causes is_empty_dir() in submodule.c:get_next_submodule() to
check for a directory only existing in the actual worktree, while the
is_empty_dir() being called from .git/modules.
Signed-off-by: Peter Kaestle <peter.kaestle@nokia.com>
---
t/t5526-fetch-submodules.sh | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh
index dd8e423..9fbd481 100755
--- a/t/t5526-fetch-submodules.sh
+++ b/t/t5526-fetch-submodules.sh
@@ -719,4 +719,42 @@ test_expect_success 'fetch new submodule commit intermittently referenced by sup
)
'
+add_commit_push()
+{
+ dir="$1"
+ msg="$2"
+ shift 2
+ git -C "$dir" add "$@" &&
+ git -C "$dir" commit -a -m "$msg" &&
+ git -C "$dir" push
+}
+
+test_expect_failure 'fetching a superproject containing an uninitialized sub/sub project' '
+ # does not depend on any previous test setups
+
+ for repo in outer middle inner
+ do
+ git init --bare $repo &&
+ git clone $repo ${repo}_content &&
+ echo $repo > ${repo}_content/file &&
+ add_commit_push ${repo}_content "initial" file
+ done &&
+
+ git clone outer A &&
+ git -C A submodule add "$pwd/middle" &&
+ git -C A/middle/ submodule add "$pwd/inner" &&
+ add_commit_push A/middle/ "adding inner sub" .gitmodules inner &&
+ add_commit_push A/ "adding middle sub" .gitmodules middle &&
+
+ git clone outer B &&
+ git -C B/ submodule update --init middle &&
+
+ echo "change on inner repo of A" > A/middle/inner/file &&
+ add_commit_push A/middle/inner "change on inner" file &&
+ add_commit_push A/middle "change on inner" inner &&
+ add_commit_push A "change on inner" middle &&
+
+ git -C B/ fetch
+'
+
test_done
--
2.6.2
next prev parent reply other threads:[~2020-11-03 14:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-03 14:23 [REGRESSION FIX 0/2] Handling regression introduced by a62387b Peter Kaestle
2020-11-03 14:23 ` Peter Kaestle [this message]
2020-11-03 14:23 ` [REGRESSION FIX 2/2] Revert "submodule.c: fetch in submodules git directory instead of in worktree" Peter Kaestle
2020-11-09 8:33 ` [RFC 0/2] Handling regression introduced by a62387b Peter Kaestle
2020-11-09 8:33 ` [RFC 1/2] submodules: test for fetch of non-init subsub-repo Peter Kaestle
2020-11-09 17:52 ` Junio C Hamano
2020-11-11 12:45 ` Peter Kästle
2020-11-11 17:22 ` Philip Oakley
2020-11-12 16:00 ` [RFCv2] submodules: fix of regression on fetching " Peter Kaestle
2020-11-11 17:35 ` [RFC 1/2] submodules: test for fetch " Philippe Blain
2020-11-11 19:27 ` Junio C Hamano
2020-11-11 19:24 ` Philippe Blain
2020-11-09 8:33 ` [RFC 2/2] Revert "submodule.c: fetch in submodules git directory instead of in worktree" Peter Kaestle
2020-11-10 15:08 ` Johannes Schindelin
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1604413399-63090-2-git-send-email-peter.kaestle@nokia.com \
--to=peter.kaestle@nokia.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=sbeller@google.com \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).