[PATCH 2/2] completion: enhance "current branch" display

Subsystems: the rest

DORMANTno replies

3 messages, 3 authors, 2016-06-15 · open the first message on its own page

[PATCH 2/2] completion: enhance "current branch" display

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:44

Introduce GIT_PS1_DESCRIBE option you can set to "contains", "branch", or
"describe" to tweak the way how a detached HEAD is described.

The default behaviour is to describe only exact match with some tag
(otherwise use the first 7 hexdigits) as before.

Signed-off-by: Junio C Hamano <redacted>
---

 * I do not think the new modes based on name-rev (aka "--contains") are
   much useful if you do your own development while on a detached HEAD,
   but they probably are useful for tourists who sightsee.

 contrib/completion/git-completion.bash |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index ccc7e0d..2490d5f 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -108,10 +108,21 @@ __git_ps1 ()
 			fi
 
 			b="$(git symbolic-ref HEAD 2>/dev/null)" || {
-				b="$(git describe --exact-match HEAD 2>/dev/null)" ||
+
+				b="$(
+				case "${GIT_PS1_DESCRIBE_STYLE-}" in
+				(contains)
+					git describe --contains HEAD ;;
+				(branch)
+					git describe --contains --all HEAD ;;
+				(describe)
+					git describe HEAD ;;
+				(* | default)
+					git describe --exact-match HEAD ;;
+				esac 2>/dev/null)" ||
+
 				b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." ||
 				b="unknown"
-
 				b="($b)"
 			}
 		fi
-- 
1.6.3.9.g6345d

Re: [PATCH 2/2] completion: enhance "current branch" display

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:46:44

On Sonntag, 10. Mai 2009, Junio C Hamano wrote:
 				b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." ||
While you are here, you could turn this line into

		{ b=$(< "$g/HEAD") && b=${b:0:7}...; } 2>/dev/null ||

to save a process. $(< foo) is a bash feature and does the same as $(cat foo), 
but faster.

-- Hannes

Re: [PATCH 2/2] completion: enhance "current branch" display

From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:46:44

Junio C Hamano [off-list ref] wrote:
Introduce GIT_PS1_DESCRIBE option you can set to "contains", "branch", or
"describe" to tweak the way how a detached HEAD is described.

The default behaviour is to describe only exact match with some tag
(otherwise use the first 7 hexdigits) as before.

Signed-off-by: Junio C Hamano <redacted>
---

 * I do not think the new modes based on name-rev (aka "--contains") are
   much useful if you do your own development while on a detached HEAD,
   but they probably are useful for tourists who sightsee.
Yea, both patches are sensible.

IIRC the desire for name-rev was for detached HEAD in contexts
like what git submodule produce.  If you are sitting on a tagged
version in a submodule, its nice to see that in your prompt.
Since you aren't developing there right now, there is no branch,
and you are just sightseeing.

This feature may have started at my prior job, where we had our
own git submodule like tool integrated with our build system,
that predated git submodule.  But its also still really useful
with say the Android Open Source Project, where users have 150 or
so git repositories, all on detached HEADs, most pointing at an
annotated tag.

-- 
Shawn.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help