diff --git a/cache.h b/cache.h index b829410f6d..f837732f79 100644 --- a/cache.h +++ b/cache.h @@ -1124,6 +1124,8 @@ extern int get_sha1_blob(const char *str, unsigned char *sha1); extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix); extern int get_sha1_with_context(const char *str, unsigned flags, unsigned char *sha1, struct object_context *orc); +extern int get_oid(const char *str, struct object_id *oid); + typedef int each_abbrev_fn(const unsigned char *sha1, void *); extern int for_each_abbrev(const char *prefix, each_abbrev_fn, void *); diff --git a/sha1_name.c b/sha1_name.c index 3acf221f92..1ae20fec15 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -1214,6 +1214,15 @@ int get_sha1(const char *name, unsigned char *sha1) return get_sha1_with_context(name, 0, sha1, &unused); } +/* + * This is like "get_sha1()", but for struct object_id. + */ +int get_oid(const char *name, struct object_id *oid) +{ + return get_sha1(name, oid->hash); +} + + /* * Many callers know that the user meant to name a commit-ish by * syntactical positions where the object name appears. Calling this