X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=builtin-describe.c;h=d2cfb1b0837ffd1ab3b1f69e8dee0ffa36f2e1ab;hb=208f689610e524ce9858f9d28635f7fea51b8d96;hp=df554b30af3ddcb4d0141838c06f82d433cbf3a4;hpb=c7ea453618e41e05a06f05e3ab63d555d0ddd7d9;p=git.git diff --git a/builtin-describe.c b/builtin-describe.c index df554b30a..d2cfb1b08 100644 --- a/builtin-describe.c +++ b/builtin-describe.c @@ -10,17 +10,17 @@ #define MAX_TAGS (FLAG_BITS - 1) static const char * const describe_usage[] = { - "git-describe [options] *", + "git describe [options] *", NULL }; static int debug; /* Display lots of verbose info */ -static int all; /* Default to annotated tags only */ -static int tags; /* But allow any tags if --tags is specified */ +static int all; /* Any valid ref can be used */ +static int tags; /* Allow lightweight tags */ static int longformat; static int abbrev = DEFAULT_ABBREV; static int max_candidates = 10; -const char *pattern = NULL; +static const char *pattern; static int always; struct commit_name { @@ -80,12 +80,13 @@ static int get_name(const char *path, const unsigned char *sha1, int flag, void * Otherwise only annotated tags are used. */ if (might_be_tag) { - if (is_tag) { + if (is_tag) prio = 2; - if (pattern && fnmatch(pattern, path + 10, 0)) - prio = 0; - } else + else prio = 1; + + if (pattern && fnmatch(pattern, path + 10, 0)) + prio = 0; } else prio = 0; @@ -111,8 +112,6 @@ static int compare_pt(const void *a_, const void *b_) { struct possible_tag *a = (struct possible_tag *)a_; struct possible_tag *b = (struct possible_tag *)b_; - if (a->name->prio != b->name->prio) - return b->name->prio - a->name->prio; if (a->depth != b->depth) return a->depth - b->depth; if (a->found_order != b->found_order) @@ -203,7 +202,7 @@ static void describe(const char *arg, int last_one) */ display_name(n); if (longformat) - show_suffix(0, n->tag->tagged->sha1); + show_suffix(0, n->tag ? n->tag->tagged->sha1 : sha1); printf("\n"); return; }