From ed7e81b9aefaa47e61983d14c2447bbd1f5c95c5 Mon Sep 17 00:00:00 2001 From: Oliver Reiche Date: Thu, 27 Jun 2024 17:22:32 +0200 Subject: Use (un)expected for Git repo --- src/buildtool/serve_api/serve_service/source_tree.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/buildtool/serve_api/serve_service/source_tree.cpp') 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(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(res)); + return result_t(std::in_place_index<1>, *std::move(res)); } auto SourceTreeService::ArchiveImportToGit( -- cgit v1.2.3