mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
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 <junkio@cox.net> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
This commit is contained in:
parent
ed9f7c954c
commit
26cdd1e7c7
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue