Make rev-parse --verify --quiet ref@{1.year.ago} when the reflog does not go back that far succeed silently with --quiet. Signed-off-by: David Aguilar <davvid@xxxxxxxxx> --- sha1_name.c | 19 ++++++++++++------- t/t1503-rev-parse-verify.sh | 10 ++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/sha1_name.c b/sha1_name.c index be9a9de..5836f94 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -514,8 +514,11 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1, if (warn_ambiguous_refs && (refs_found > 1 || - !get_short_sha1(str, len, tmp_sha1, GET_SHA1_QUIETLY))) - warning(warn_msg, len, str); + !get_short_sha1(str, len, tmp_sha1, GET_SHA1_QUIETLY))) { + if (!(flags & GET_SHA1_QUIETLY)) { + warning(warn_msg, len, str); + } + } if (reflog_len) { int nth, i; @@ -558,11 +561,13 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1, len = 4; } } - if (at_time) - warning("Log for '%.*s' only goes " - "back to %s.", len, str, - show_date(co_time, co_tz, DATE_RFC2822)); - else { + if (at_time) { + if (!(flags & GET_SHA1_QUIETLY)) { + warning("Log for '%.*s' only goes " + "back to %s.", len, str, + show_date(co_time, co_tz, DATE_RFC2822)); + } + } else { if (flags & GET_SHA1_QUIETLY) { exit(128); } diff --git a/t/t1503-rev-parse-verify.sh b/t/t1503-rev-parse-verify.sh index 7c3d830..e7dece0 100755 --- a/t/t1503-rev-parse-verify.sh +++ b/t/t1503-rev-parse-verify.sh @@ -100,6 +100,16 @@ test_expect_success 'fails silently when using -q with not enough reflogs' ' test_must_be_empty error ' +test_expect_success 'succeeds silently when using -q with invalid dates' ' + ref=$(git rev-parse HEAD) && + : >.git/logs/refs/test3 && + git update-ref -m "message for refs/test3" refs/test3 "$ref" && + git rev-parse -q --verify refs/test3@{1.year.ago} >actual 2>error && + test_must_be_empty error && + echo "$ref" >expect && + test_cmp expect actual +' + test_expect_success 'no stdout output on error' ' test -z "$(git rev-parse --verify)" && test -z "$(git rev-parse --verify foo)" && -- 2.1.0.248.g6401287.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html