From: Junio C Hamano Date: Mon, 18 Dec 2006 02:08:52 +0000 (-0800) Subject: avoid accessing _all_ loose refs in git-show-ref --verify X-Git-Tag: v1.5.0-rc0~83 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=26cdd1e7c7a21b6d71ebc201fc2472a6a68f5ce4;p=git.git avoid accessing _all_ loose refs in git-show-ref --verify If you want to verify a ref, it is overkill to first read all loose refs into a linked list, and then check if the desired ref is there. Signed-off-by: Junio C Hamano Acked-by: Johannes Schindelin --- diff --git a/builtin-show-ref.c b/builtin-show-ref.c index b36f15eea..23e0ff8fb 100644 --- a/builtin-show-ref.c +++ b/builtin-show-ref.c @@ -213,6 +213,23 @@ int cmd_show_ref(int argc, const char **argv, const char *prefix) return exclude_existing(arg + 19); usage(show_ref_usage); } + + if (verify) { + unsigned char sha1[20]; + + while (*pattern) { + if (resolve_ref(*pattern, sha1, 1, NULL)) + printf("%s %s\n", sha1_to_hex(sha1), + *pattern); + else if (!quiet) + die("'%s' - not a valid ref", *pattern); + else + return 1; + pattern++; + } + return 0; + } + if (show_head) head_ref(show_ref, NULL); for_each_ref(show_ref, NULL);