forked from lix-project/lix
Fix assertion failure in FlakeRef::to_string()
This commit is contained in:
parent
6e4210d8ce
commit
46cb15df9b
|
@ -39,6 +39,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
files. */
|
||||
|
||||
GitInfo gitInfo;
|
||||
gitInfo.ref = "HEAD";
|
||||
gitInfo.rev = "0000000000000000000000000000000000000000";
|
||||
gitInfo.shortRev = std::string(gitInfo.rev, 0, 7);
|
||||
|
||||
|
@ -67,7 +68,6 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
|
||||
// clean working tree, but no ref or rev specified. Use 'HEAD'.
|
||||
rev = chomp(runProgram("git", true, { "-C", uri, "rev-parse", "HEAD" }));
|
||||
ref = "HEAD"s;
|
||||
}
|
||||
|
||||
if (!ref) ref = "HEAD"s;
|
||||
|
@ -127,6 +127,7 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
|||
|
||||
// FIXME: check whether rev is an ancestor of ref.
|
||||
GitInfo gitInfo;
|
||||
gitInfo.ref = *ref;
|
||||
gitInfo.rev = rev != "" ? rev : chomp(readFile(localRefFile));
|
||||
gitInfo.shortRev = std::string(gitInfo.rev, 0, 7);
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ namespace nix {
|
|||
struct GitInfo
|
||||
{
|
||||
Path storePath;
|
||||
std::string ref;
|
||||
std::string rev;
|
||||
std::string shortRev;
|
||||
std::optional<uint64_t> revCount;
|
||||
|
|
|
@ -237,8 +237,8 @@ static FlakeSourceInfo fetchFlake(EvalState & state, const FlakeRef flakeRef, bo
|
|||
info.storePath = gitInfo.storePath;
|
||||
info.rev = Hash(gitInfo.rev, htSHA1);
|
||||
info.revCount = gitInfo.revCount;
|
||||
info.flakeRef.ref = gitInfo.ref;
|
||||
info.flakeRef.rev = info.rev;
|
||||
// FIXME: ensure info.flakeRef.ref is set.
|
||||
return info;
|
||||
}
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ std::string FlakeRef::to_string() const
|
|||
}
|
||||
|
||||
else if (auto refData = std::get_if<FlakeRef::IsGit>(&data)) {
|
||||
assert(ref || !rev);
|
||||
assert(!rev || ref);
|
||||
string = refData->uri;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue