fetchGit: fix submodule output attribute
Before this change it would be false for all evaluations but the first. Now it follows the input argument (as it should).
This commit is contained in:
parent
587e259bfd
commit
6864ad7cf5
2 changed files with 12 additions and 4 deletions
|
@ -32,6 +32,9 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
std::optional<std::string> ref, std::string rev,
|
||||
const std::string & name, bool fetchSubmodules)
|
||||
{
|
||||
GitInfo gitInfo;
|
||||
gitInfo.submodules = fetchSubmodules;
|
||||
|
||||
if (evalSettings.pureEval && rev == "")
|
||||
throw Error("in pure evaluation mode, 'fetchGit' requires a Git revision");
|
||||
|
||||
|
@ -49,7 +52,6 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
if (!clean) {
|
||||
|
||||
/* This is an unclean working tree. So copy all tracked files. */
|
||||
GitInfo gitInfo;
|
||||
gitInfo.rev = "0000000000000000000000000000000000000000";
|
||||
gitInfo.shortRev = std::string(gitInfo.rev, 0, 7);
|
||||
|
||||
|
@ -141,7 +143,6 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
}
|
||||
|
||||
// FIXME: check whether rev is an ancestor of ref.
|
||||
GitInfo gitInfo;
|
||||
gitInfo.rev = rev != "" ? rev : chomp(readFile(localRefFile));
|
||||
gitInfo.shortRev = std::string(gitInfo.rev, 0, 7);
|
||||
|
||||
|
@ -190,8 +191,6 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
std::filesystem::remove_all(p.path());
|
||||
}
|
||||
}
|
||||
|
||||
gitInfo.submodules = true;
|
||||
} else {
|
||||
auto source = sinkToSource([&](Sink & sink) {
|
||||
RunOptions gitOptions("git", { "-C", cacheDir, "archive", gitInfo.rev });
|
||||
|
|
|
@ -61,6 +61,15 @@ r8=$(nix eval --raw "(builtins.fetchGit { url = $rootRepo; rev = \"$rev\"; submo
|
|||
[[ $r6 == $r7 ]]
|
||||
[[ $r7 == $r8 ]]
|
||||
|
||||
have_submodules=$(nix eval "(builtins.fetchGit { url = $rootRepo; rev = \"$rev\"; }).submodules")
|
||||
[[ $have_submodules == false ]]
|
||||
|
||||
have_submodules=$(nix eval "(builtins.fetchGit { url = $rootRepo; rev = \"$rev\"; submodules = false; }).submodules")
|
||||
[[ $have_submodules == false ]]
|
||||
|
||||
have_submodules=$(nix eval "(builtins.fetchGit { url = $rootRepo; rev = \"$rev\"; submodules = true; }).submodules")
|
||||
[[ $have_submodules == true ]]
|
||||
|
||||
# The resulting store path cannot be the same.
|
||||
[[ $pathWithoutSubmodules != $pathWithSubmodules ]]
|
||||
|
||||
|
|
Loading…
Reference in a new issue