summaryrefslogtreecommitdiff
path: root/src/buildtool/serve_api/serve_service/source_tree.cpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2024-06-27 17:22:32 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2024-06-28 11:24:09 +0200
commited7e81b9aefaa47e61983d14c2447bbd1f5c95c5 (patch)
tree366dc9ab8809cc05f4354c2007bd47281a7c2974 /src/buildtool/serve_api/serve_service/source_tree.cpp
parent956ed669cf71d1ee74dbb573c542a7565c3a90d3 (diff)
downloadjustbuild-ed7e81b9aefaa47e61983d14c2447bbd1f5c95c5.tar.gz
Use (un)expected for Git repo
Diffstat (limited to 'src/buildtool/serve_api/serve_service/source_tree.cpp')
-rw-r--r--src/buildtool/serve_api/serve_service/source_tree.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/buildtool/serve_api/serve_service/source_tree.cpp b/src/buildtool/serve_api/serve_service/source_tree.cpp
index 2fb5acfb..f79a6492 100644
--- a/src/buildtool/serve_api/serve_service/source_tree.cpp
+++ b/src/buildtool/serve_api/serve_service/source_tree.cpp
@@ -117,7 +117,12 @@ auto SourceTreeService::GetSubtreeFromCommit(
msg);
}
});
- return repo->GetSubtreeFromCommit(commit, subdir, wrapped_logger);
+ auto res =
+ repo->GetSubtreeFromCommit(commit, subdir, wrapped_logger);
+ if (not res) {
+ return res.error() == GitLookupError::Fatal;
+ }
+ return *std::move(res);
}
}
return true; // fatal failure
@@ -594,11 +599,11 @@ auto SourceTreeService::CommonImportToGit(
// get the root tree of this commit; this is thread-safe
auto res =
just_git_repo->GetSubtreeFromCommit(*commit_hash, ".", wrapped_logger);
- if (not std::holds_alternative<std::string>(res)) {
+ if (not res) {
return result_t(std::in_place_index<0>, err);
}
// return the root tree id
- return result_t(std::in_place_index<1>, std::get<std::string>(res));
+ return result_t(std::in_place_index<1>, *std::move(res));
}
auto SourceTreeService::ArchiveImportToGit(