[PATCH 3/4] rev-parse: introduce get_sha1_gently
- From
Jon Seymour <jon.seymour@gmail.com>
- Date
- Aug 21, 2010, 01:43 UTC
- Message-ID
- <1282355022-17795-4-git-send-email-jon.seymour@gmail.com>
- In-Reply-To
- <AANLkTi=m7+h0nVg+EAmiir-rnrjoBwbpLtztcNNBVxiz@mail.gmail.com>
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@gmail.com> --- 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