am: support --allow-empty to record specific empty patches

This option helps to record specific empty patches in the middle
of an am session, which does create empty commits only when:

    1. the index has not changed
    2. lacking a branch

When the index has changed, "--allow-empty" will create a non-empty
commit like passing "--continue" or "--resolved".

Signed-off-by: 徐沛文 (Aleen) <aleen42@vip.qq.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
徐沛文 (Aleen)
2021-12-09 07:25:55 +00:00
committed by Junio C Hamano
parent 7c096b8d61
commit 9e7e41bf19
5 changed files with 95 additions and 10 deletions

View File

@@ -1212,17 +1212,23 @@ static void show_merge_in_progress(struct wt_status *s,
static void show_am_in_progress(struct wt_status *s,
const char *color)
{
int am_empty_patch;
status_printf_ln(s, color,
_("You are in the middle of an am session."));
if (s->state.am_empty_patch)
status_printf_ln(s, color,
_("The current patch is empty."));
if (s->hints) {
if (!s->state.am_empty_patch)
am_empty_patch = s->state.am_empty_patch;
if (!am_empty_patch)
status_printf_ln(s, color,
_(" (fix conflicts and then run \"git am --continue\")"));
status_printf_ln(s, color,
_(" (use \"git am --skip\" to skip this patch)"));
if (am_empty_patch)
status_printf_ln(s, color,
_(" (use \"git am --allow-empty\" to record this patch as an empty commit)"));
status_printf_ln(s, color,
_(" (use \"git am --abort\" to restore the original branch)"));
}