refs: make rev-parse --quiet actually quiet
When a reflog is deleted, e.g. when "git stash" clears its stashes, "git rev-parse --verify --quiet" dies: fatal: Log for refs/stash is empty. The reason is that the get_sha1() code path does not allow us to suppress this message. Pass the flags bitfield through get_sha1_with_context() so that read_ref_at() can suppress the message. Use get_sha1_with_context1() instead of get_sha1() in rev-parse so that the --quiet flag is honored. Signed-off-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
2892dfeec3
commit
c41a87dd80
@ -508,7 +508,9 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
||||
int has_dashdash = 0;
|
||||
int output_prefix = 0;
|
||||
unsigned char sha1[20];
|
||||
unsigned int flags = 0;
|
||||
const char *name = NULL;
|
||||
struct object_context unused;
|
||||
|
||||
if (argc > 1 && !strcmp("--parseopt", argv[1]))
|
||||
return cmd_parseopt(argc - 1, argv + 1, prefix);
|
||||
@ -596,6 +598,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
if (!strcmp(arg, "--quiet") || !strcmp(arg, "-q")) {
|
||||
quiet = 1;
|
||||
flags |= GET_SHA1_QUIETLY;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(arg, "--short") ||
|
||||
@ -818,7 +821,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
||||
name++;
|
||||
type = REVERSED;
|
||||
}
|
||||
if (!get_sha1(name, sha1)) {
|
||||
if (!get_sha1_with_context(name, flags, sha1, &unused)) {
|
||||
if (verify)
|
||||
revs_count++;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user