git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] status: show in-progress info for short status

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Apr 6, 2017, 14:33 UTC
Message-ID
<20170406143342.14770-1-szeder.dev@gmail.com>
In-Reply-To
<2c3c8028cd057428758bb1e21a064a264936de90.1490968428.git.git@grubix.eu>
Show 24 quoted lines
> @@ -1779,6 +1780,31 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
>  	}
>  
>  	color_fprintf(s->fp, header_color, "]");
> +
> + inprogress:
> +	if (!s->show_inprogress)
> +		goto conclude;
> +	memset(&state, 0, sizeof(state));
> +	wt_status_get_state(&state,
> +			    s->branch && !strcmp(s->branch, "HEAD"));
> +	if (state.merge_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("MERGING")));
> +	else if (state.am_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("AM")));
> +	else if (state.rebase_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("REBASE-m")));
> +	else if (state.rebase_interactive_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("REBASE-i")));
> +	else if (state.cherry_pick_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("CHERRY-PICKING")));
> +	else if (state.revert_in_progress)
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("REVERTING")));
> +	if (state.bisect_in_progress)
else if?
Show 8 quoted lines
> +		color_fprintf(s->fp, header_color, "; %s", LABEL(N_("BISECTING")));
> +	free(state.branch);
> +	free(state.onto);
> +	free(state.detached_from);
> +
>   conclude:
>  	fputc(s->null_termination ? '\0' : '\n', s->fp);
>  }

This reminded me of a patch that I have been using for almost two years now...

git-prompt.sh's similar long conditional chain to show the ongoing operation has an else-branch at the end showing "AM/REBASE". Your patch doesn't add an equivalent branch. Is this intentional or an oversight?

I suppose it's intentional, because that "AM/REBASE" branch in the prompt seems to be unreachable (see below), but I never took the effort to actually check that (hence the "seems" and that's why I never submitted it).

 -- >8 --
Subject: [PATCH] bash prompt: remove unreachable ongoing "AM/REBASE" fallback

Back in the day it was impossible to tell an ongoing 'am' and "plain" 'rebase' (i.e. non-interactive, non-merge) apart, thus the prompt displayed "AM/REBASE" in those cases, see e75201963 (Improve bash prompt to detect various states like an unfinished merge, 2007-09-30). Later 3041c3243 (am: --rebasing, 2008-03-04) made it possible to tell those cases apart and made __git_ps1() use this right away to display either "AM" or "REBASE", respectively. However, it left that "AM/REBASE" in an else-branch as a fallback, but it seems to have been impossible to reach even back then.

This ancient unreachable else-branch has survived to this day, remove it finally.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 contrib/completion/git-prompt.sh | 2 --
 1 file changed, 2 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index c6cbef38c..d13af41f2 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -411,8 +411,6 @@ __git_ps1 ()
 				r="|REBASE"
 			elif [ -f "$g/rebase-apply/applying" ]; then
 				r="|AM"
-			else
-				r="|AM/REBASE"
 			fi
 		elif [ -f "$g/MERGE_HEAD" ]; then
 			r="|MERGING"
-- 
2.12.2.613.g9c5b79913
Previous: brian m. carlsonNext: Michael J Gruber
Message 10 of 13 in “status: show in-progress info for short status”
  1. status: show in-progress info for short statusMichael J Gruber, Mar 31, 2017
  2. Junio C HamanoMar 31, 2017
  3. Michael J GruberApr 7, 2017
  4. Jacob KellerApr 7, 2017
  5. Junio C HamanoApr 13, 2017
  6. Jacob KellerApr 13, 2017
  7. Junio C HamanoMay 11, 2017
  8. Jacob KellerApr 13, 2017
  9. brian m. carlsonApr 1, 2017
  10. SZEDER GáborApr 6, 2017
  11. Michael J GruberApr 7, 2017
  12. SZEDER GáborApr 13, 2017
  13. Junio C HamanoApr 17, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.