diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2024-06-27 17:22:32 +0200 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2024-06-28 11:24:09 +0200 |
commit | ed7e81b9aefaa47e61983d14c2447bbd1f5c95c5 (patch) | |
tree | 366dc9ab8809cc05f4354c2007bd47281a7c2974 /src/buildtool/serve_api/serve_service/source_tree.cpp | |
parent | 956ed669cf71d1ee74dbb573c542a7565c3a90d3 (diff) | |
download | justbuild-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.cpp | 11 |
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( |