Vladimir Panteleev <git@xxxxxxxxxxxxxxxxxx> writes: > This patch adds --head support to show-ref's --verify logic, by > explicitly checking if the "HEAD" ref is specified when --head is > present. > @@ -207,6 +207,8 @@ int cmd_show_ref(int argc, const char **argv, const char *prefix) > if (!quiet) > show_one(*pattern, &oid); > } > + else if (show_head && !strcmp(*pattern, "HEAD")) > + head_ref(show_ref, NULL); > else if (!quiet) > die("'%s' - not a valid ref", *pattern); > else The context around here look like this: while (*pattern) { struct object_id oid; if (starts_with(*pattern, "refs/") && !read_ref(*pattern, oid.hash)) { if (!quiet) show_one(*pattern, &oid); } else if (!quiet) die("'%s' - not a valid ref", *pattern); else return 1; pattern++; } and viewed in the wider context, I notice that quiet is not honored in the added code. I think that is easily fixable by replacing this hunk with something like: - if (starts_with(*pattern, "refs/") && + if (to_show_ref(*pattern) && and then another hunk that implements to_show_ref() helper function, perhaps like static int to_show_ref(const char *pattern) { if (starts_with(pattern, "refs/")) return 1; if (show_head && !strcmp(pattern, "HEAD")) return 1; return 0; } or something. Having said all that, using --verify on HEAD does not make much sense, because if HEAD is missing in .git/, I do not think Git considers that directory as a Git repository to begin with. So from that point of view, I am not sure what value this change adds to the system, even though the change is almost correct (modulo the "quiet" thing).