From: Bret Barkelew <bret@corthon.com>
To: git@vger.kernel.org
Subject: Inconsistent Behavior using 'Reference'
Date: Tue, 15 Jan 2019 14:24:03 -0800 [thread overview]
Message-ID: <CAGTkKagdG=85CVZbumVfXHTx6zgmbD6_PHmzPx4rFpdZ+c22Gg@mail.gmail.com> (raw)
The repo/workspace (not the cache, the code we’re going to build) that
we’re trying to initialize uses several submodules. We’ve notice that
if we use ‘clone’ first on the parent repository, then call ‘git
submodule update --init --recursive --reference <path>’ inside the
parent repository, the same path is passed to all child and nested
child repositories.
However, if we call ‘git clone --recurse-submodules --reference
<path>’ and try to clone the parent and initialize submodules in one
step, Git tries to append the submodule relative path (relative to the
parent) to each of the recursive calls, and since the reference repo
is bare, this fails.
CRITICAL - Cloning repo: https://github.com/Microsoft/mu_tiano_plus.git
INFO - Cmd to run is: git clone --recurse-submodules --reference
C:\src2\mu4\mu_basecore https://github.com/Microsoft/mu_tiano_plus.git
C:\src2\mu4\mu_basecore\Common\TIANO
INFO - ------------------------------------------------
INFO - --------------Cmd Output Starting---------------
INFO - ------------------------------------------------
INFO - Cloning into 'C:\src2\mu4\mu_basecore\Common\TIANO'...
Checking out files: 100% (3858/3858), done.
INFO - Submodule 'CryptoPkg/Library/OpensslLib/openssl'
(https://github.com/openssl/openssl) registered for path
'CryptoPkg/Library/OpensslLib/openssl'
INFO - fatal: submodule 'CryptoPkg/Library/OpensslLib/openssl' cannot
add alternate: path
'C:/src2/mu4/mu_basecore/.git/modules/CryptoPkg/Library/OpensslLib/openssl/'
does not exist
INFO - Failed to clone 'CryptoPkg/Library/OpensslLib/openssl'. Retry scheduled
INFO - fatal: submodule 'CryptoPkg/Library/OpensslLib/openssl' cannot
add alternate: path
'C:/src2/mu4/mu_basecore/.git/modules/CryptoPkg/Library/OpensslLib/openssl/'
does not exist
INFO - Failed to clone 'CryptoPkg/Library/OpensslLib/openssl' a second
time, aborting
As you can see, the parent path is
‘'C:\src2\mu4\mu_basecore\Common\TIANO’, but when clone initializes
the submodule, it updates the ‘C:\src2\mu4\mu_basecore’ reference to
‘C:/src2/mu4/mu_basecore/.git/modules/CryptoPkg/Library/OpensslLib/openssl/’,
as though the reference were a full repo and it was checking for the
submodule repo within the ‘.git’ directory.
If we do this same thing using a ‘clone’ first, and ‘submodule update’
second, the same ‘C:\src2\mu4\mu_basecore’ reference is passed to all
submodules (AND nested submodules).
Thoughts? Are these both expected behaviors? Will they be consistent
in future versions of git?
Thanks!
- Bret Barkelew
next reply other threads:[~2019-01-15 22:24 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-15 22:24 Bret Barkelew [this message]
2019-01-19 18:38 ` Inconsistent Behavior using 'Reference' Bret Barkelew
2019-01-25 17:19 ` Bret Barkelew
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAGTkKagdG=85CVZbumVfXHTx6zgmbD6_PHmzPx4rFpdZ+c22Gg@mail.gmail.com' \
--to=bret@corthon.com \
--cc=git@vger.kernel.org \
/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.
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 NNTP newsgroup(s).