From 3171d55c36d8c65c85e140af1ef98560fcdaf8be Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 12 Nov 2018 21:49:26 +0100 Subject: [PATCH] status: rebase and merge can be in progress at the same time Since `git rebase -r` was introduced, that is possible. But our machinery did not think that possible, and failed to say anything about the rebase in progress when in the middle of a merge. Let's work around that in the minimal fashion. Signed-off-by: Johannes Schindelin --- wt-status.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wt-status.c b/wt-status.c index 5ffab61015..30b81576a3 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1553,6 +1553,7 @@ void wt_status_get_state(struct wt_status_state *state, struct object_id oid; if (!stat(git_path_merge_head(the_repository), &st)) { + wt_status_check_rebase(NULL, state); state->merge_in_progress = 1; } else if (wt_status_check_rebase(NULL, state)) { ; /* all set */ @@ -1576,9 +1577,13 @@ static void wt_longstatus_print_state(struct wt_status *s, struct wt_status_state *state) { const char *state_color = color(WT_STATUS_HEADER, s); - if (state->merge_in_progress) + if (state->merge_in_progress) { + if (state->rebase_interactive_in_progress) { + show_rebase_information(s, state, state_color); + fputs("\n", s->fp); + } show_merge_in_progress(s, state, state_color); - else if (state->am_in_progress) + } else if (state->am_in_progress) show_am_in_progress(s, state, state_color); else if (state->rebase_in_progress || state->rebase_interactive_in_progress) show_rebase_in_progress(s, state, state_color);