diff options
Diffstat (limited to 'bpkg/fetch-git.cxx')
-rw-r--r-- | bpkg/fetch-git.cxx | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/bpkg/fetch-git.cxx b/bpkg/fetch-git.cxx index 0c2ac21..8195375 100644 --- a/bpkg/fetch-git.cxx +++ b/bpkg/fetch-git.cxx @@ -2152,9 +2152,13 @@ namespace bpkg // Noop on POSIX. // - bool - git_fixup_worktree (const common_options&, const dir_path&, bool) + optional<bool> + git_fixup_worktree (const common_options&, + const dir_path&, + bool revert, + bool) { + assert (!revert); return false; } @@ -2545,15 +2549,26 @@ namespace bpkg return r; } - bool + optional<bool> git_fixup_worktree (const common_options& co, const dir_path& dir, - bool revert) + bool revert, + bool ie) { - optional<bool> r ( - fixup_worktree (co, dir, revert, dir_path () /* prefix */)); + try + { + optional<bool> r ( + fixup_worktree (co, dir, revert, dir_path () /* prefix */)); - return r ? *r : false; + return r ? *r : false; + } + catch (const failed&) + { + if (ie) + return nullopt; + + throw; + } } #endif |