summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine/executor/executor.hpp
diff options
context:
space:
mode:
authorPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-05-16 15:02:05 +0200
committerPaul Cristian Sarbu <paul.cristian.sarbu@huawei.com>2024-05-17 10:36:13 +0200
commit06336198a38ffaec6c35df34580391579a7a7b22 (patch)
tree275b66f24ea2433d9672f64b0303e5ecd1afbfda /src/buildtool/execution_engine/executor/executor.hpp
parent580539ab08a098e7f348fee3c46fbf5d44cd4d54 (diff)
downloadjustbuild-06336198a38ffaec6c35df34580391579a7a7b22.tar.gz
FileRoot: Fix parsing of ignore-special Git tree roots
When populating the GitTree instance stored in a Git tree-type FileRoot with the ignore-special flag set, the GitTree instance would be created with an empty raw_id_ field, signaling that some of the entries might have been skipped and thus the root tree id is not anymore in a one-to-one correspondence with the stored list of entries. This however caused FileRoot instances with missing tree id information. This commit fixes the issue by always storing the raw_id_ field as the root id of the Git tree, as well as clarifying the relationship between this field and the ignore_special_ flag, including refactoring the tree id getters.
Diffstat (limited to 'src/buildtool/execution_engine/executor/executor.hpp')
-rw-r--r--src/buildtool/execution_engine/executor/executor.hpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp
index 37bdb32b..a228fd24 100644
--- a/src/buildtool/execution_engine/executor/executor.hpp
+++ b/src/buildtool/execution_engine/executor/executor.hpp
@@ -269,7 +269,8 @@ class ExecutorImpl {
Logger::Log(LogLevel::Trace, [&tree]() {
std::ostringstream oss{};
- oss << "upload directory content of " << tree.Hash() << std::endl;
+ oss << "upload directory content of " << tree.FileRootHash()
+ << std::endl;
for (auto const& [path, entry] : tree) {
oss << fmt::format(" - {}: {}", path, entry->Hash())
<< std::endl;
@@ -344,7 +345,7 @@ class ExecutorImpl {
if (not VerifyOrUploadTree(api, *tree)) {
Logger::Log(LogLevel::Error,
"failed to verifyorupload git tree {} [{}]",
- tree->Hash(),
+ tree->FileRootHash(),
hash);
return false;
}