symbolic ref: refuse non-ref targets in HEAD
[gitweb.git] / builtin-show-branch.c
index ee4269dd33aa0b2229eaac0ce7b75f7893447b0f..306b850c720ecef7030bd7139f7c7d2758125ac4 100644 (file)
@@ -4,7 +4,7 @@
 #include "builtin.h"
 
 static const char show_branch_usage[] =
-"git-show-branch [--sparse] [--current] [--all] [--remotes] [--topo-order] [--more=count | --list | --independent | --merge-base ] [--topics] [<refs>...] | --reflog[=n[,b]] <branch>";
+"git show-branch [--sparse] [--current] [--all] [--remotes] [--topo-order] [--more=count | --list | --independent | --merge-base ] [--topics] [<refs>...] | --reflog[=n[,b]] <branch>";
 static const char show_branch_usage_reflog[] =
 "--reflog is incompatible with --all, --remotes, --independent or --merge-base";
 
@@ -259,11 +259,10 @@ static void join_revs(struct commit_list **list_p,
 
 static void show_one_commit(struct commit *commit, int no_name)
 {
-       struct strbuf pretty;
+       struct strbuf pretty = STRBUF_INIT;
        const char *pretty_str = "(unavailable)";
        struct commit_name *name = commit->util;
 
-       strbuf_init(&pretty, 0);
        if (commit->object.parsed) {
                pretty_print_commit(CMIT_FMT_ONELINE, commit,
                                    &pretty, 0, NULL, NULL, 0, 0);
@@ -782,8 +781,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
                                has_head++;
                }
                if (!has_head) {
-                       int pfxlen = strlen("refs/heads/");
-                       append_one_rev(head + pfxlen);
+                       int offset = !prefixcmp(head, "refs/heads/") ? 11 : 0;
+                       append_one_rev(head + offset);
                }
        }