summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2014-04-08 21:07:28 +0000
committerFrank Terbeck <ft@bewatermyfriend.org>2014-05-06 14:22:10 +0200
commit6a201af3416ae177a66486e9af500c25a117c91e (patch)
treeb66f91ec701ab4e732270610222b83b520ea660d
parent0da28f323d790a79d965d9cec48604c97e03f4b8 (diff)
downloadzsh-6a201af3416ae177a66486e9af500c25a117c91e.tar.gz
zsh-6a201af3416ae177a66486e9af500c25a117c91e.zip
32597: vcs_info git: Describe detached heads symbolically.
This makes %b expand to a refname rather than a sha1 when HEAD is detached but happens to match some ref (branch, tag, etc). The resulting output will typically contain a slash (e.g., "tags/v1.0.2", "heads/mybranch"), which helps distinguish it from the output in the "HEAD is a symbolic ref" case.
-rw-r--r--ChangeLog5
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_get_data_git2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 377ae2207..b040b205d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-06 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * 32597: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: Describe detached heads symbolically.
+
2014-04-29 Peter Stephenson <p.stephenson@samsung.com>
* Tomoki Sekiyama: 32592: add CORRECT_IGNORE_FILE variable.
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
index 6512851cc..a48dc390d 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
@@ -97,7 +97,7 @@ VCS_INFO_git_getbranch () {
gitbranch="$(${(z)gitsymref} 2> /dev/null)"
if [[ $? -ne 0 ]] ; then
- gitbranch="refs/tags/$(${vcs_comm[cmd]} describe --exact-match HEAD 2>/dev/null)"
+ gitbranch="refs/tags/$(${vcs_comm[cmd]} describe --all --exact-match HEAD 2>/dev/null)"
if [[ $? -ne 0 ]] ; then
gitbranch="${${"$(< $gitdir/HEAD)"}[1,7]}..."