[PATCH v2 10/11] sequencer: use the "resolve" strategy without forking
- From
Alban Gruin <alban.gruin@gmail.com>
- Date
- Sep 1, 2020, 10:57 UTC
- Message-ID
- <20200901105705.6059-11-alban.gruin@gmail.com>
- In-Reply-To
- <20200901105705.6059-1-alban.gruin@gmail.com>
This teaches the sequencer to invoke the "resolve" strategy with a function call instead of forking.
Signed-off-by: Alban Gruin <alban.gruin@gmail.com> --- sequencer.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/sequencer.c b/sequencer.c index 2425896911..c4c7b28d24 100644 --- a/sequencer.c +++ b/sequencer.c @@ -33,6 +33,7 @@ #include "commit-reach.h" #include "rebase-interactive.h" #include "reset.h" +#include "merge-strategies.h" #define GIT_REFLOG_ACTION "GIT_REFLOG_ACTION" @@ -1922,9 +1923,15 @@ static int do_pick_commit(struct repository *r, commit_list_insert(base, &common); commit_list_insert(next, &remotes); - res |= try_merge_command(r, opts->strategy, - opts->xopts_nr, (const char **)opts->xopts, - common, oid_to_hex(&head), remotes); + + if (!strcmp(opts->strategy, "resolve")) { + repo_read_index(r); + res |= merge_strategies_resolve(r, common, oid_to_hex(&head), remotes); + } else + res |= try_merge_command(r, opts->strategy, + opts->xopts_nr, (const char **)opts->xopts, + common, oid_to_hex(&head), remotes); + free_commit_list(common); free_commit_list(remotes); }
-- 2.28.0.370.g2c2dc3cc62