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

[PATCH] git-prompt: GIT_PS1_SHOWCONFLICTSTATE variable fix

From
Michiel W. Beijen <mb@x14.nl>
Date
Mar 19, 2024, 20:32 UTC
Message-ID
<20240319203244.799796-1-mb@x14.nl>

There are a few environment variables that can influence the output for the __git_ps1 macro in git-prompt.sh. All settings that are 'on/off' types such as GIT_PS1_SHOWUNTRACKEDFILES and GIT_PS1_SHOWDIRTYSTATE just take any value, and in the tests are tested with 'y', however GIT_PS1_SHOWCONFLICTSTATE must be set to 'yes' otherwise it will not work.

This commit changes that behaviour, and makes sure GIT_PS1_SHOWCONFLICTSTATE is consistent with these other parameters.

Signed-off-by: Michiel W. Beijen <mb@x14.nl>
---
 contrib/completion/git-prompt.sh | 6 +++---
 t/t9903-bash-prompt.sh           | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 71f179cba3..fd6141e463 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -85,8 +85,8 @@
 # by setting GIT_PS1_OMITSPARSESTATE.
 #
 # If you would like to see a notification on the prompt when there are
-# unresolved conflicts, set GIT_PS1_SHOWCONFLICTSTATE to "yes". The
-# prompt will include "|CONFLICT".
+# unresolved conflicts, set GIT_PS1_SHOWCONFLICTSTATE to a nonempty
+# value. The prompt will include "|CONFLICT".
 #
 # If you would like to see more information about the identity of
 # commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
@@ -528,7 +528,7 @@ __git_ps1 ()
 	fi
 
 	local conflict="" # state indicator for unresolved conflicts
-	if [[ "${GIT_PS1_SHOWCONFLICTSTATE}" == "yes" ]] &&
+	if [ -n "${GIT_PS1_SHOWCONFLICTSTATE-}" ] &&
 	   [[ $(git ls-files --unmerged 2>/dev/null) ]]; then
 		conflict="|CONFLICT"
 	fi
diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
index d667dda654..6479a0d898 100755
--- a/t/t9903-bash-prompt.sh
+++ b/t/t9903-bash-prompt.sh
@@ -769,7 +769,7 @@ test_expect_success 'prompt - conflict indicator' '
 	test_when_finished "git reset --hard HEAD~" &&
 	test_must_fail git stash apply &&
 	(
-		GIT_PS1_SHOWCONFLICTSTATE="yes" &&
+		GIT_PS1_SHOWCONFLICTSTATE=y &&
 		__git_ps1 >"$actual"
 	) &&
 	test_cmp expected "$actual"

base-commit: 3bd955d26919e149552f34aacf8a4e6368c26cec
-- 
2.43.0
Next: Justin Donnelly
Message 1 of 4 in “git-prompt: GIT_PS1_SHOWCONFLICTSTATE variable fix”
  1. git-prompt: GIT_PS1_SHOWCONFLICTSTATE variable fixMichiel W. Beijen, Mar 19, 2024
  2. Justin DonnellyMar 19, 2024
  3. Michiel BeijenMar 24, 2024
  4. Justin DonnellyMar 24, 2024

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.