Skip to content

Commit

Permalink
describe: load refnames before calling describe()
Browse files Browse the repository at this point in the history
Get rid of the static variable that was used to prevent loading all
the refnames multiple times by moving that code out of describe(),
simply making sure it is only run once that way.

Also change the error message that is shown in case no refnames are
found to not include a hash any more, as the error condition is not
specific to any particular revision.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
René Scharfe authored and Junio C Hamano committed Oct 19, 2009
1 parent bcc9b74 commit fb423da
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions builtin-describe.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ static void describe(const char *arg, int last_one)
unsigned char sha1[20];
struct commit *cmit, *gave_up_on = NULL;
struct commit_list *list;
static int initialized = 0;
struct commit_name *n;
struct possible_tag all_matches[MAX_TAGS];
unsigned int match_cnt = 0, annotated_cnt = 0, cur_match;
Expand All @@ -192,14 +191,6 @@ static void describe(const char *arg, int last_one)
if (!cmit)
die("%s is not a valid '%s' object", arg, commit_type);

if (!initialized) {
initialized = 1;
for_each_ref(get_name, NULL);
}

if (!found_names)
die("cannot describe '%s'", sha1_to_hex(sha1));

n = cmit->util;
if (n) {
/*
Expand Down Expand Up @@ -359,6 +350,10 @@ int cmd_describe(int argc, const char **argv, const char *prefix)
return cmd_name_rev(i + argc, args, prefix);
}

for_each_ref(get_name, NULL);
if (!found_names)
die("No names found, cannot describe anything.");

if (argc == 0) {
describe("HEAD", 1);
} else {
Expand Down

0 comments on commit fb423da

Please sign in to comment.