summaryrefslogtreecommitdiff
path: root/tree.h
diff options
context:
space:
mode:
authorLibravatar Ævar Arnfjörð Bjarmason <avarab@gmail.com>2021-03-20 23:37:50 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-03-20 16:09:26 -0700
commit6c9fc42e9f1bf27a3830ef594b7f5f9147af8361 (patch)
treee7a49421fdd614145dcfc3b809828a7fa0a8be9e /tree.h
parentarchive: stop passing "stage" through read_tree_recursive() (diff)
downloadtgif-6c9fc42e9f1bf27a3830ef594b7f5f9147af8361.tar.xz
tree.h API: expose read_tree_1() as read_tree_at()
Rename the static read_tree_1() function to read_tree_at(). This function works just like read_tree_recursive(), except you provide your own strbuf. This step doesn't make much sense now, but in follow-up commits I'll remove the base/baselen/stage arguments to read_tree_recursive(). At that point an anticipated in-tree user[1] for the old read_tree_recursive() couldn't provide a path to start the traversal. Let's give them a function to do so with an API that makes more sense for them, by taking a strbuf we should be able to avoid more casting and/or reallocations in the future. 1. https://lore.kernel.org/git/xmqqft106sok.fsf@gitster.g Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'tree.h')
-rw-r--r--tree.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/tree.h b/tree.h
index 6b0b1dc211..123fc41efe 100644
--- a/tree.h
+++ b/tree.h
@@ -33,6 +33,12 @@ int cmp_cache_name_compare(const void *a_, const void *b_);
#define READ_TREE_RECURSIVE 1
typedef int (*read_tree_fn_t)(const struct object_id *, struct strbuf *, const char *, unsigned int, int, void *);
+int read_tree_at(struct repository *r,
+ struct tree *tree, struct strbuf *base,
+ int stage,
+ const struct pathspec *pathspec,
+ read_tree_fn_t fn, void *context);
+
int read_tree_recursive(struct repository *r,
struct tree *tree,
const char *base, int baselen,