Use of this function allows git rev-parse --verify ref@{n} to report an error message if n >= the size of the reference log for ref. However, if the user has not specified --verify, get_sha1_gently will be called again via verify_filename and the message will be reported then, if required. Signed-off-by: Jon Seymour <jon.seymour@xxxxxxxxx> --- builtin/rev-parse.c | 2 +- cache.h | 1 + sha1_name.c | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletions(-) diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index a5a1c86..dbc6a8c 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -707,7 +707,7 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) name++; type = REVERSED; } - if (!get_sha1(name, sha1)) { + if (!get_sha1_gently(name, sha1, !verify)) { if (verify) revs_count++; else diff --git a/cache.h b/cache.h index 37ef9d8..625728c 100644 --- a/cache.h +++ b/cache.h @@ -767,6 +767,7 @@ static inline int get_sha1_with_context(const char *str, unsigned char *sha1, st { return get_sha1_with_context_1(str, sha1, orc, 1, NULL); } +extern inline int get_sha1_gently(const char *str, unsigned char *sha1, int gently); extern int get_sha1_hex(const char *hex, unsigned char *sha1); extern char *sha1_to_hex(const unsigned char *sha1); /* static buffer result! */ extern int read_ref(const char *filename, unsigned char *sha1); diff --git a/sha1_name.c b/sha1_name.c index 6e706eb..48e7aa0 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -1050,6 +1050,14 @@ int get_sha1_with_mode_1(const char *name, unsigned char *sha1, unsigned *mode, return ret; } +int get_sha1_gently(const char *name, unsigned char *sha1, int gently) +{ + struct object_context unused; + int ret; + ret = get_sha1_with_context_1(name, sha1, &unused, gently, NULL); + return ret; +} + int get_sha1_with_context_1(const char *name, unsigned char *sha1, struct object_context *oc, int gently, const char *prefix) -- 1.7.2.1.156.gf148c -- 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