summaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
authorDavid Aguilar <davvid@gmail.com>2014-09-19 03:45:37 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-09-19 17:46:15 (GMT)
commitc41a87dd80cd32cfd6e2d670153a9b69dc627f71 (patch)
tree2e46f6355196a3b2c84ef52f32f35c45c5e585e1 /refs.c
parent2892dfeec3f98f7e65a2746d271471d2c3c4af57 (diff)
downloadgit-c41a87dd80cd32cfd6e2d670153a9b69dc627f71.zip
git-c41a87dd80cd32cfd6e2d670153a9b69dc627f71.tar.gz
git-c41a87dd80cd32cfd6e2d670153a9b69dc627f71.tar.bz2
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>
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/refs.c b/refs.c
index 2ce5d69..9e405f9 100644
--- a/refs.c
+++ b/refs.c
@@ -3108,7 +3108,7 @@ static int read_ref_at_ent_oldest(unsigned char *osha1, unsigned char *nsha1,
return 1;
}
-int read_ref_at(const char *refname, unsigned long at_time, int cnt,
+int read_ref_at(const char *refname, unsigned int flags, unsigned long at_time, int cnt,
unsigned char *sha1, char **msg,
unsigned long *cutoff_time, int *cutoff_tz, int *cutoff_cnt)
{
@@ -3126,8 +3126,12 @@ int read_ref_at(const char *refname, unsigned long at_time, int cnt,
for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb);
- if (!cb.reccnt)
- die("Log for %s is empty.", refname);
+ if (!cb.reccnt) {
+ if (flags & GET_SHA1_QUIETLY)
+ exit(128);
+ else
+ die("Log for %s is empty.", refname);
+ }
if (cb.found_it)
return 0;