summaryrefslogtreecommitdiff
path: root/sha1_name.c
diff options
context:
space:
mode:
authorJon Seymour <jon.seymour@gmail.com>2010-08-24 14:52:42 +1000
committerJunio C Hamano <gitster@pobox.com>2010-08-24 10:46:11 -0700
commite6eedc31d5c3d448d000eecb678ce891a4800b54 (patch)
tree0c04fa67152efb2f8f2ec8d9f368665580d2e622 /sha1_name.c
parent64fdc08dac6694d1e754580e7acb82dfa4988bb9 (diff)
downloadgit-e6eedc31d5c3d448d000eecb678ce891a4800b54.tar.gz
rev-parse: exit with non-zero status if ref@{n} is not valid.
"The current behaviour of ref@{...} syntax parser is suboptimal: $ git rev-parse --verify jch@{99999} && echo true warning: Log for 'jch' only has 1368 entries. cfb88e9a8d4926b0011ae2dd67e1f57a98f4b768 true It even knows that it is running off the cut-off point; it should just cause the caller to notice that fact. I don't think changing it to error out should cause any harm to existing callers." With this change: $ git rev-parse --verify jch@{99999} || echo false fatal: Log for 'jch' only has 1368 entries. false $ git rev-parse jch@{99999} || echo false fatal: Log for 'jch' only has 1368 entries. false Signed-off-by: Jon Seymour <jon.seymour@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_name.c')
-rw-r--r--sha1_name.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sha1_name.c b/sha1_name.c
index 4f2af8da93..90ad430a86 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -430,10 +430,11 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
"warning: Log for '%.*s' only goes "
"back to %s.\n", len, str,
show_date(co_time, co_tz, DATE_RFC2822));
- else
- fprintf(stderr,
- "warning: Log for '%.*s' only has "
- "%d entries.\n", len, str, co_cnt);
+ else {
+ free(real_ref);
+ die("Log for '%.*s' only has %d entries.",
+ len, str, co_cnt);
+ }
}
}