From 26cdd1e7c7a21b6d71ebc201fc2472a6a68f5ce4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 17 Dec 2006 18:08:52 -0800 Subject: 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 --- builtin-show-ref.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/builtin-show-ref.c b/builtin-show-ref.c index b36f15eeaa..23e0ff8fbf 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); -- cgit v1.2.1