path: root/builtin-show-branch.c
diff options
authorJohannes Schindelin <>2006-09-21 22:07:01 (GMT)
committerJunio C Hamano <>2006-09-22 03:54:43 (GMT)
commitafdcec73660737d0ac28a808829ab76587a9befa (patch)
tree1041aa5b4fb6dc3c6d1fd41b6acb9418e80873d6 /builtin-show-branch.c
parent913c983e0481b477ccc11fa72ebeb0d6ec8d06aa (diff)
show-branch: mark active branch with a '*' again
This was lost in the packed-ref updates. The original test was a bit dubious, so I cleaned that up, too. It fixes the case when the current HEAD is refs/heads/bla/master: the original test was true for both bla/master _and_ master. However, it shares a hard-to-fix bug with the original test: if the current HEAD is refs/heads/master, and there is a branch refs/heads/heads/master, then both are marked active. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin-show-branch.c')
1 files changed, 6 insertions, 0 deletions
diff --git a/builtin-show-branch.c b/builtin-show-branch.c
index 5d6ce56..fb1a400 100644
--- a/builtin-show-branch.c
+++ b/builtin-show-branch.c
@@ -443,6 +443,12 @@ static int rev_is_head(char *head, int headlen, char *name,
if ((!head[0]) ||
(head_sha1 && sha1 && hashcmp(head_sha1, sha1)))
return 0;
+ if (!strncmp(head, "refs/heads/", 11))
+ head += 11;
+ if (!strncmp(name, "refs/heads/", 11))
+ name += 11;
+ else if (!strncmp(name, "heads/", 6))
+ name += 6;
return !strcmp(head, name);