]> git.ipfire.org Git - thirdparty/git.git/commitdiff
tree.h API: simplify read_tree_recursive() signature
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 20 Mar 2021 22:37:51 +0000 (23:37 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sat, 20 Mar 2021 23:09:26 +0000 (16:09 -0700)
Simplify the signature of read_tree_recursive() to omit the "base",
"baselen" and "stage" arguments. No callers of it use these parameters
for anything anymore.

The last function to call read_tree_recursive() with a non-"" path was
read_tree_recursive() itself, but that was changed in
ffd31f661d5 (Reimplement read_tree_recursive() using
tree_entry_interesting(), 2011-03-25).

The last user of the "stage" parameter went away in the last commit,
and even that use was mere boilerplate.

So let's remove those and rename the read_tree_recursive() function to
just read_tree(). We had another read_tree() function that I've
refactored away in preceding commits, since all in-tree users read
trees recursively with a callback we can change the name to signify
that this is the norm.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
archive.c
builtin/checkout.c
builtin/log.c
builtin/ls-files.c
builtin/ls-tree.c
merge-recursive.c
tree.c
tree.h

index 4f2713315431c8f252777495f6dfaf3d0df2a1db..4921dc8a69f4f4e50aedda73c8170a39021026af 100644 (file)
--- a/archive.c
+++ b/archive.c
@@ -229,7 +229,7 @@ static int write_directory(struct archiver_context *c)
 
 static int queue_or_write_archive_entry(const struct object_id *oid,
                struct strbuf *base, const char *filename,
-               unsigned mode, int stage, void *context)
+               unsigned mode, void *context)
 {
        struct archiver_context *c = context;
 
@@ -314,10 +314,10 @@ int write_archive_entries(struct archiver_args *args,
                git_attr_set_direction(GIT_ATTR_INDEX);
        }
 
-       err = read_tree_recursive(args->repo, args->tree, "",
-                                 0, 0, &args->pathspec,
-                                 queue_or_write_archive_entry,
-                                 &context);
+       err = read_tree(args->repo, args->tree,
+                       &args->pathspec,
+                       queue_or_write_archive_entry,
+                       &context);
        if (err == READ_TREE_RECURSIVE)
                err = 0;
        while (context.bottom) {
@@ -375,7 +375,7 @@ struct path_exists_context {
 };
 
 static int reject_entry(const struct object_id *oid, struct strbuf *base,
-                       const char *filename, unsigned mode, int stage,
+                       const char *filename, unsigned mode,
                        void *context)
 {
        int ret = -1;
@@ -403,9 +403,9 @@ static int path_exists(struct archiver_args *args, const char *path)
        ctx.args = args;
        parse_pathspec(&ctx.pathspec, 0, 0, "", paths);
        ctx.pathspec.recursive = 1;
-       ret = read_tree_recursive(args->repo, args->tree, "",
-                                 0, 0, &ctx.pathspec,
-                                 reject_entry, &ctx);
+       ret = read_tree(args->repo, args->tree,
+                       &ctx.pathspec,
+                       reject_entry, &ctx);
        clear_pathspec(&ctx.pathspec);
        return ret != 0;
 }
index 2d6550bc3c8638a3d25a04924a1352a43854d4c6..0e6639052001558241645865ffc9b6791a93d8bc 100644 (file)
@@ -114,7 +114,7 @@ static int post_checkout_hook(struct commit *old_commit, struct commit *new_comm
 }
 
 static int update_some(const struct object_id *oid, struct strbuf *base,
-               const char *pathname, unsigned mode, int stage, void *context)
+               const char *pathname, unsigned mode, void *context)
 {
        int len;
        struct cache_entry *ce;
@@ -155,8 +155,8 @@ static int update_some(const struct object_id *oid, struct strbuf *base,
 
 static int read_tree_some(struct tree *tree, const struct pathspec *pathspec)
 {
-       read_tree_recursive(the_repository, tree, "", 0, 0,
-                           pathspec, update_some, NULL);
+       read_tree(the_repository, tree,
+                 pathspec, update_some, NULL);
 
        /* update the index with the given tree's info
         * for all args, expanding wildcards, and exit
@@ -322,7 +322,7 @@ static void mark_ce_for_checkout_overlay(struct cache_entry *ce,
         * If it comes from the tree-ish, we already know it
         * matches the pathspec and could just stamp
         * CE_MATCHED to it from update_some(). But we still
-        * need ps_matched and read_tree_recursive (and
+        * need ps_matched and read_tree (and
         * eventually tree_entry_interesting) cannot fill
         * ps_matched yet. Once it can, we can avoid calling
         * match_pathspec() for _all_ entries when
index f67b67d80ed1e8d7cd95982a8da96b435b8a452b..980de590638374c1563845a576b7e8bf54dabfcc 100644 (file)
@@ -599,7 +599,7 @@ static int show_tag_object(const struct object_id *oid, struct rev_info *rev)
 
 static int show_tree_object(const struct object_id *oid,
                struct strbuf *base,
-               const char *pathname, unsigned mode, int stage, void *context)
+               const char *pathname, unsigned mode, void *context)
 {
        FILE *file = context;
        fprintf(file, "%s%s\n", pathname, S_ISDIR(mode) ? "/" : "");
@@ -681,9 +681,9 @@ int cmd_show(int argc, const char **argv, const char *prefix)
                                        diff_get_color_opt(&rev.diffopt, DIFF_COMMIT),
                                        name,
                                        diff_get_color_opt(&rev.diffopt, DIFF_RESET));
-                       read_tree_recursive(the_repository, (struct tree *)o, "",
-                                           0, 0, &match_all, show_tree_object,
-                                           rev.diffopt.file);
+                       read_tree(the_repository, (struct tree *)o,
+                                 &match_all, show_tree_object,
+                                 rev.diffopt.file);
                        rev.shown_one = 1;
                        break;
                case OBJ_COMMIT:
index aa153423b80b88edc57a8797f7472f5d9da8d79e..60a2913a01e9d00bad828fa8eca57fdb18eff787 100644 (file)
@@ -446,7 +446,7 @@ static int read_one_entry_opt(struct index_state *istate,
 }
 
 static int read_one_entry(const struct object_id *oid, struct strbuf *base,
-                         const char *pathname, unsigned mode, int stage,
+                         const char *pathname, unsigned mode,
                          void *context)
 {
        struct index_state *istate = context;
@@ -460,7 +460,7 @@ static int read_one_entry(const struct object_id *oid, struct strbuf *base,
  * the stage that will conflict with the entry being added.
  */
 static int read_one_entry_quick(const struct object_id *oid, struct strbuf *base,
-                               const char *pathname, unsigned mode, int stage,
+                               const char *pathname, unsigned mode,
                                void *context)
 {
        struct index_state *istate = context;
@@ -522,7 +522,7 @@ void overlay_tree_on_index(struct index_state *istate,
 
        if (!fn)
                fn = read_one_entry_quick;
-       err = read_tree_recursive(the_repository, tree, "", 0, 1, &pathspec, fn, istate);
+       err = read_tree(the_repository, tree, &pathspec, fn, istate);
        if (err)
                die("unable to read tree entries %s", tree_name);
 
index 7cad3f24ebd084fe653061f4f5899816853fc4f0..3a442631c71a07f0d0dda791ed72af83f2b92bca 100644 (file)
@@ -62,7 +62,7 @@ static int show_recursive(const char *base, int baselen, const char *pathname)
 }
 
 static int show_tree(const struct object_id *oid, struct strbuf *base,
-               const char *pathname, unsigned mode, int stage, void *context)
+               const char *pathname, unsigned mode, void *context)
 {
        int retval = 0;
        int baselen;
@@ -185,6 +185,6 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
        tree = parse_tree_indirect(&oid);
        if (!tree)
                die("not a tree object");
-       return !!read_tree_recursive(the_repository, tree, "", 0, 0,
-                                    &pathspec, show_tree, NULL);
+       return !!read_tree(the_repository, tree,
+                          &pathspec, show_tree, NULL);
 }
index b052974f191cd82741475a019076c90e45d6d4de..3d9207455b3a9176e12cf7acba65786ae4237706 100644 (file)
@@ -453,7 +453,7 @@ static void unpack_trees_finish(struct merge_options *opt)
 
 static int save_files_dirs(const struct object_id *oid,
                           struct strbuf *base, const char *path,
-                          unsigned int mode, int stage, void *context)
+                          unsigned int mode, void *context)
 {
        struct path_hashmap_entry *entry;
        int baselen = base->len;
@@ -473,8 +473,8 @@ static void get_files_dirs(struct merge_options *opt, struct tree *tree)
 {
        struct pathspec match_all;
        memset(&match_all, 0, sizeof(match_all));
-       read_tree_recursive(opt->repo, tree, "", 0, 0,
-                           &match_all, save_files_dirs, opt);
+       read_tree(opt->repo, tree,
+                 &match_all, save_files_dirs, opt);
 }
 
 static int get_tree_entry_if_blob(struct repository *r,
diff --git a/tree.c b/tree.c
index f67c2153054b46ddcd95d5aac686b388106de5c9..410e3b477e557f55ad6843e1106567a3fd155557 100644 (file)
--- a/tree.c
+++ b/tree.c
@@ -13,7 +13,6 @@ const char *tree_type = "tree";
 
 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)
 {
@@ -39,7 +38,7 @@ int read_tree_at(struct repository *r,
                }
 
                switch (fn(&entry.oid, base,
-                          entry.path, entry.mode, stage, context)) {
+                          entry.path, entry.mode, context)) {
                case 0:
                        continue;
                case READ_TREE_RECURSIVE:
@@ -73,7 +72,7 @@ int read_tree_at(struct repository *r,
                strbuf_add(base, entry.path, len);
                strbuf_addch(base, '/');
                retval = read_tree_at(r, lookup_tree(r, &oid),
-                                     base, stage, pathspec,
+                                     base, pathspec,
                                      fn, context);
                strbuf_setlen(base, oldlen);
                if (retval)
@@ -82,17 +81,13 @@ int read_tree_at(struct repository *r,
        return 0;
 }
 
-int read_tree_recursive(struct repository *r,
-                       struct tree *tree,
-                       const char *base, int baselen,
-                       int stage, const struct pathspec *pathspec,
-                       read_tree_fn_t fn, void *context)
+int read_tree(struct repository *r,
+             struct tree *tree,
+             const struct pathspec *pathspec,
+             read_tree_fn_t fn, void *context)
 {
        struct strbuf sb = STRBUF_INIT;
-       int ret;
-
-       strbuf_add(&sb, base, baselen);
-       ret = read_tree_at(r, tree, &sb, stage, pathspec, fn, context);
+       int ret = read_tree_at(r, tree, &sb, pathspec, fn, context);
        strbuf_release(&sb);
        return ret;
 }
diff --git a/tree.h b/tree.h
index 123fc41efe66582aadf77e01d3bed94572fff8d4..6efff003e2120e3cc5a82cda5bde904bfefa786d 100644 (file)
--- a/tree.h
+++ b/tree.h
@@ -31,17 +31,16 @@ struct tree *parse_tree_indirect(const struct object_id *oid);
 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 *);
+typedef int (*read_tree_fn_t)(const struct object_id *, struct strbuf *, const char *, unsigned 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,
-                       int stage, const struct pathspec *pathspec,
-                       read_tree_fn_t fn, void *context);
+int read_tree(struct repository *r,
+             struct tree *tree,
+             const struct pathspec *pathspec,
+             read_tree_fn_t fn, void *context);
+
 #endif /* TREE_H */