mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
rebase: factor out checkout for up to date branch
This code is heavily indented and it will be convenient later in the series to have it in its own function. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
abe6bb3905
commit
ae42fa4c03
|
@ -812,6 +812,23 @@ static int rebase_config(const char *var, const char *value, void *data)
|
|||
return git_default_config(var, value, data);
|
||||
}
|
||||
|
||||
static int checkout_up_to_date(struct rebase_options *options)
|
||||
{
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
int ret = 0;
|
||||
|
||||
strbuf_addf(&buf, "%s: checkout %s",
|
||||
getenv(GIT_REFLOG_ACTION_ENVIRONMENT),
|
||||
options->switch_to);
|
||||
if (reset_head(the_repository, &options->orig_head, "checkout",
|
||||
options->head_name, RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
|
||||
NULL, buf.buf, DEFAULT_REFLOG_ACTION) < 0)
|
||||
ret = error(_("could not switch to %s"), options->switch_to);
|
||||
strbuf_release(&buf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Determines whether the commits in from..to are linear, i.e. contain
|
||||
* no merge commits. This function *expects* `from` to be an ancestor of
|
||||
|
@ -1673,21 +1690,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
|
|||
if (!(options.flags & REBASE_FORCE)) {
|
||||
/* Lazily switch to the target branch if needed... */
|
||||
if (options.switch_to) {
|
||||
strbuf_reset(&buf);
|
||||
strbuf_addf(&buf, "%s: checkout %s",
|
||||
getenv(GIT_REFLOG_ACTION_ENVIRONMENT),
|
||||
options.switch_to);
|
||||
if (reset_head(the_repository,
|
||||
&options.orig_head, "checkout",
|
||||
options.head_name,
|
||||
RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
|
||||
NULL, buf.buf,
|
||||
DEFAULT_REFLOG_ACTION) < 0) {
|
||||
ret = error(_("could not switch to "
|
||||
"%s"),
|
||||
options.switch_to);
|
||||
ret = checkout_up_to_date(&options);
|
||||
if (ret)
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
if (!(options.flags & REBASE_NO_QUIET))
|
||||
|
|
Loading…
Reference in a new issue