[PATCH 3/4] rev-parse: introduce get_sha1_gently
From: Jon Seymour <hidden>
Date: 2016-06-15 22:49:21
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted>
---
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