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