From: Junio C Hamano Date: Sun, 19 May 2019 07:45:33 +0000 (+0900) Subject: Merge branch 'js/rebase-i-label-shown-in-status-fix' X-Git-Tag: v2.22.0-rc1~9 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e0708c24d57b94b56b5556d05cc98f7ac5ba622b?ds=inline;hp=-c Merge branch 'js/rebase-i-label-shown-in-status-fix' "git status" did not know that the "label" instruction in the todo-list "rebase -i -r" uses should not be shown as a hex object name. * js/rebase-i-label-shown-in-status-fix: status: fix display of rebase -ir's `label` command --- e0708c24d57b94b56b5556d05cc98f7ac5ba622b diff --combined wt-status.c index e065558c31,f9fba796fb..d2a1bec226 --- a/wt-status.c +++ b/wt-status.c @@@ -17,7 -17,6 +17,7 @@@ #include "utf8.h" #include "worktree.h" #include "lockfile.h" +#include "sequencer.h" static const char cut_line[] = "------------------------ >8 ------------------------\n"; @@@ -1215,7 -1214,9 +1215,9 @@@ static void abbrev_sha1_in_line(struct int i; if (starts_with(line->buf, "exec ") || - starts_with(line->buf, "x ")) + starts_with(line->buf, "x ") || + starts_with(line->buf, "label ") || + starts_with(line->buf, "l ")) return; split = strbuf_split_max(line, ' ', 3); @@@ -1387,22 -1388,12 +1389,22 @@@ static void show_rebase_in_progress(str static void show_cherry_pick_in_progress(struct wt_status *s, const char *color) { - status_printf_ln(s, color, _("You are currently cherry-picking commit %s."), - find_unique_abbrev(&s->state.cherry_pick_head_oid, DEFAULT_ABBREV)); + if (is_null_oid(&s->state.cherry_pick_head_oid)) + status_printf_ln(s, color, + _("Cherry-pick currently in progress.")); + else + status_printf_ln(s, color, + _("You are currently cherry-picking commit %s."), + find_unique_abbrev(&s->state.cherry_pick_head_oid, + DEFAULT_ABBREV)); + if (s->hints) { if (has_unmerged(s)) status_printf_ln(s, color, _(" (fix conflicts and run \"git cherry-pick --continue\")")); + else if (is_null_oid(&s->state.cherry_pick_head_oid)) + status_printf_ln(s, color, + _(" (run \"git cherry-pick --continue\" to continue)")); else status_printf_ln(s, color, _(" (all conflicts fixed: run \"git cherry-pick --continue\")")); @@@ -1415,21 -1406,12 +1417,21 @@@ static void show_revert_in_progress(struct wt_status *s, const char *color) { - status_printf_ln(s, color, _("You are currently reverting commit %s."), - find_unique_abbrev(&s->state.revert_head_oid, DEFAULT_ABBREV)); + if (is_null_oid(&s->state.revert_head_oid)) + status_printf_ln(s, color, + _("Revert currently in progress.")); + else + status_printf_ln(s, color, + _("You are currently reverting commit %s."), + find_unique_abbrev(&s->state.revert_head_oid, + DEFAULT_ABBREV)); if (s->hints) { if (has_unmerged(s)) status_printf_ln(s, color, _(" (fix conflicts and run \"git revert --continue\")")); + else if (is_null_oid(&s->state.revert_head_oid)) + status_printf_ln(s, color, + _(" (run \"git revert --continue\" to continue)")); else status_printf_ln(s, color, _(" (all conflicts fixed: run \"git revert --continue\")")); @@@ -1600,7 -1582,6 +1602,7 @@@ void wt_status_get_state(struct reposit { struct stat st; struct object_id oid; + enum replay_action action; if (!stat(git_path_merge_head(r), &st)) { wt_status_check_rebase(NULL, state); @@@ -1618,15 -1599,7 +1620,15 @@@ state->revert_in_progress = 1; oidcpy(&state->revert_head_oid, &oid); } - + if (!sequencer_get_last_command(r, &action)) { + if (action == REPLAY_PICK) { + state->cherry_pick_in_progress = 1; + oidcpy(&state->cherry_pick_head_oid, &null_oid); + } else { + state->revert_in_progress = 1; + oidcpy(&state->revert_head_oid, &null_oid); + } + } if (get_detached_from) wt_status_get_detached_from(r, state); }