From f4913f91a960ebcfbc9c6a09dc909ce638cb5c66 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 20 Apr 2005 18:06:49 -0700 Subject: [PATCH] Accept commit in some places when tree is needed. This patch implements read_tree_with_tree_or_commit_sha1(), which can be used when you are interested in reading an unpacked raw tree data but you do not know nor care if the SHA1 you obtained your user is a tree ID or a commit ID. Before this function's introduction, you would have called read_sha1_file(), examined its type, parsed it to call read_sha1_file() again if it is a commit, and verified that the resulting object is a tree. Instead, this function does that for you. It returns NULL if the given SHA1 is not either a tree or a commit. Signed-off-by: Junio C Hamano Signed-off-by: Linus Torvalds --- cache.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cache.h') diff --git a/cache.h b/cache.h index a67b79e97..378299a03 100644 --- a/cache.h +++ b/cache.h @@ -125,4 +125,8 @@ extern int error(const char *err, ...); extern int cache_name_compare(const char *name1, int len1, const char *name2, int len2); +extern void *read_tree_with_tree_or_commit_sha1(const unsigned char *sha1, + unsigned long *size, + unsigned char *tree_sha1_ret); + #endif /* CACHE_H */ -- cgit v1.2.1