summaryrefslogtreecommitdiff
path: root/builtin-show-branch.c
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2006-09-22 00:07:01 +0200
committerJunio C Hamano <junkio@cox.net>2006-09-21 20:54:43 -0700
commitafdcec73660737d0ac28a808829ab76587a9befa (patch)
tree1041aa5b4fb6dc3c6d1fd41b6acb9418e80873d6 /builtin-show-branch.c
parent913c983e0481b477ccc11fa72ebeb0d6ec8d06aa (diff)
downloadgit-afdcec73660737d0ac28a808829ab76587a9befa.tar.gz
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 <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'builtin-show-branch.c')
-rw-r--r--builtin-show-branch.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/builtin-show-branch.c b/builtin-show-branch.c
index 5d6ce56836..fb1a4000d9 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);
}