All of lore.kernel.org
 help / color / mirror / Atom feed
From: Elijah Newren <newren@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v2 0/6] Move the read_tree() function to its only user
Date: Mon, 8 Mar 2021 11:18:51 -0800	[thread overview]
Message-ID: <CABPp-BEfEQZzymkTGVTJ7cHjaPfXNeek+ikm5C0YYD2YYjpsFw@mail.gmail.com> (raw)
In-Reply-To: <20210308022138.28166-1-avarab@gmail.com>

On Sun, Mar 7, 2021 at 6:22 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
>
> v1 of this series over-removed code supporting the "ls-files
> --with-tree=*" parameter. In v2 there's no change to its behavior,
> just refactoring away of read_tree() from the tree.c API and the
> cleanup of read_tree_recursive(). Thanks to Elijah for spotting that.
>
> I've added a test at the start of this series that would have caught
> that regression in v1 (and more).
>
> 1. https://lore.kernel.org/git/CABPp-BF982muRS4GO=zYegvetQyrPMwaEM3uEBvcbPRP=krfmQ@mail.gmail.com/

This addresses my concerns with v1; so:

Reviewed-by: Elijah Newren <newren@gmail.com>

>
> Ævar Arnfjörð Bjarmason (6):
>   ls-files tests: add meaningful --with-tree tests
>   tree.c API: move read_tree() into builtin/ls-files.c
>   ls-files: don't needlessly pass around stage variable
>   ls-files: refactor away read_tree()
>   tree.h API: remove support for starting at prefix != ""
>   tree.h API: remove "stage" parameter from read_tree_recursive()
>
>  archive.c                     |  13 +++--
>  builtin/checkout.c            |   4 +-
>  builtin/log.c                 |   6 +-
>  builtin/ls-files.c            |  76 ++++++++++++++++++++++++-
>  builtin/ls-tree.c             |   4 +-
>  merge-recursive.c             |   4 +-
>  t/t3060-ls-files-with-tree.sh |  41 ++++++++++++++
>  tree.c                        | 101 ++--------------------------------
>  tree.h                        |  10 +---
>  9 files changed, 139 insertions(+), 120 deletions(-)
>
> Range-diff:
> -:  ----------- > 1:  6416da0dee2 ls-files tests: add meaningful --with-tree tests
> 1:  020534164d3 ! 2:  765001b44cd tree.c API: move read_tree() into builtin/ls-files.c
>     @@ tree.c: int cmp_cache_name_compare(const void *a_, const void *b_)
>
>       ## tree.h ##
>      @@ tree.h: int read_tree_recursive(struct repository *r,
>     +                   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,
>      -        int stage, struct pathspec *pathspec,
>      -        struct index_state *istate);
> 2:  6aa6ba2fbb5 = 3:  a71ffba7d04 ls-files: don't needlessly pass around stage variable
> 3:  4f27e5d2970 ! 4:  e78d1810b89 ls-files: remove cache juggling + sorting
>     @@ Metadata
>      Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>
>       ## Commit message ##
>     -    ls-files: remove cache juggling + sorting
>     +    ls-files: refactor away read_tree()
>
>     -    Remove the "ce_stage(ce) == 1" and "Sort the cache entry" code from
>     -    read_tree(), which allows us to remove the function entirely and move
>     -    over to read_tree_recursive().
>     +    Refactor away the read_tree() function into its only user,
>     +    overlay_tree_on_index().
>
>     -    I don't think the "Sort the cached entry" code was needed here, see
>     -    af3785dc5a7 (Optimize "diff --cached" performance., 2007-08-09) for
>     -    the use-case it was intended for. The only user of this code is
>     -    "ls-files --with-tree", which isn't the sort of use-case that needs to
>     -    care about "ce_stage(ce) != 0" or sorting tree entries.
>     +    First, change read_one_entry_opt() to use the strbuf parameter
>     +    read_tree_recursive() passes down in place. This finishes up a partial
>     +    refactoring started in 6a0b0b6de99 (tree.c: update read_tree_recursive
>     +    callback to pass strbuf as base, 2014-11-30).
>     +
>     +    Moving the rest into overlay_tree_on_index() makes this index juggling
>     +    we're doing easier to read.
>
>          Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>
>       ## builtin/ls-files.c ##
>     -@@
>     - #include "dir.h"
>     - #include "builtin.h"
>     - #include "tree.h"
>     --#include "cache-tree.h"
>     - #include "parse-options.h"
>     - #include "resolve-undo.h"
>     - #include "string-list.h"
>      @@ builtin/ls-files.c: static int get_common_prefix_len(const char *common_prefix)
>     -   return common_prefix_len;
>     - }
>
>     --static int read_one_entry_opt(struct index_state *istate,
>     --                        const struct object_id *oid,
>     + static int read_one_entry_opt(struct index_state *istate,
>     +                         const struct object_id *oid,
>      -                        const char *base, int baselen,
>     --                        const char *pathname,
>     --                        unsigned mode, int stage, int opt)
>     -+static int read_one_entry_quick(const struct object_id *oid,
>     -+                          struct strbuf *basebuf,
>     -+                          const char *pathname,
>     -+                          unsigned mode,
>     -+                          int stage, void *context)
>     ++                        struct strbuf *base,
>     +                         const char *pathname,
>     +                         unsigned mode, int stage, int opt)
>       {
>     -+  struct index_state *istate = context;
>     -+  const char *base = basebuf->buf;
>     -+  const int baselen = basebuf->len;
>     -   int len;
>     -   struct cache_entry *ce;
>     -
>      @@ builtin/ls-files.c: static int read_one_entry_opt(struct index_state *istate,
>     -   memcpy(ce->name, base, baselen);
>     -   memcpy(ce->name + baselen, pathname, len+1);
>     +           return READ_TREE_RECURSIVE;
>     +
>     +   len = strlen(pathname);
>     +-  ce = make_empty_cache_entry(istate, baselen + len);
>     ++  ce = make_empty_cache_entry(istate, base->len + len);
>     +
>     +   ce->ce_mode = create_ce_mode(mode);
>     +   ce->ce_flags = create_ce_flags(stage);
>     +-  ce->ce_namelen = baselen + len;
>     +-  memcpy(ce->name, base, baselen);
>     +-  memcpy(ce->name + baselen, pathname, len+1);
>     ++  ce->ce_namelen = base->len + len;
>     ++  memcpy(ce->name, base->buf, base->len);
>     ++  memcpy(ce->name + base->len, pathname, len+1);
>         oidcpy(&ce->oid, oid);
>     --  return add_index_entry(istate, ce, opt);
>     --}
>     --
>     --static int read_one_entry(const struct object_id *oid, struct strbuf *base,
>     --                    const char *pathname, unsigned mode, int stage,
>     --                    void *context)
>     --{
>     --  struct index_state *istate = context;
>     +   return add_index_entry(istate, ce, opt);
>     + }
>     +@@ builtin/ls-files.c: static int read_one_entry(const struct object_id *oid, struct strbuf *base,
>     +                     void *context)
>     + {
>     +   struct index_state *istate = context;
>      -  return read_one_entry_opt(istate, oid, base->buf, base->len, pathname,
>     --                            mode, stage,
>     --                            ADD_CACHE_OK_TO_ADD|ADD_CACHE_SKIP_DFCHECK);
>     --}
>     --
>     --/*
>     -- * This is used when the caller knows there is no existing entries at
>     -- * 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,
>     --                          void *context)
>     --{
>     --  struct index_state *istate = context;
>     ++  return read_one_entry_opt(istate, oid, base, pathname,
>     +                             mode, stage,
>     +                             ADD_CACHE_OK_TO_ADD|ADD_CACHE_SKIP_DFCHECK);
>     + }
>     +@@ builtin/ls-files.c: static int read_one_entry_quick(const struct object_id *oid, struct strbuf *base
>     +                           void *context)
>     + {
>     +   struct index_state *istate = context;
>      -  return read_one_entry_opt(istate, oid, base->buf, base->len, pathname,
>     --                            mode, stage,
>     --                            ADD_CACHE_JUST_APPEND);
>     --}
>     --
>     ++  return read_one_entry_opt(istate, oid, base, pathname,
>     +                             mode, stage,
>     +                             ADD_CACHE_JUST_APPEND);
>     + }
>     +
>      -
>      -static int read_tree(struct repository *r, struct tree *tree,
>      -               struct pathspec *match, struct index_state *istate)
>     @@ builtin/ls-files.c: static int read_one_entry_opt(struct index_state *istate,
>      -  cache_tree_free(&istate->cache_tree);
>      -  QSORT(istate->cache, istate->cache_nr, cmp_cache_name_compare);
>      -  return 0;
>     -+  return add_index_entry(istate, ce, ADD_CACHE_JUST_APPEND);
>     - }
>     -
>     +-}
>     +-
>       /*
>     +  * Read the tree specified with --with-tree option
>     +  * (typically, HEAD) into stage #1 and then
>     +@@ builtin/ls-files.c: void overlay_tree_on_index(struct index_state *istate,
>     +   struct pathspec pathspec;
>     +   struct cache_entry *last_stage0 = NULL;
>     +   int i;
>     ++  read_tree_fn_t fn = NULL;
>     ++  int err;
>     +
>     +   if (get_oid(tree_name, &oid))
>     +           die("tree-ish %s not found.", tree_name);
>      @@ builtin/ls-files.c: void overlay_tree_on_index(struct index_state *istate,
>                                PATHSPEC_PREFER_CWD, prefix, matchbuf);
>         } else
>                 memset(&pathspec, 0, sizeof(pathspec));
>      -  if (read_tree(the_repository, tree, &pathspec, istate))
>     -+  if (read_tree_recursive(the_repository, tree, "", 0, 1,
>     -+                          &pathspec, read_one_entry_quick, istate))
>     ++
>     ++  /*
>     ++   * See if we have cache entry at the stage.  If so,
>     ++   * do it the original slow way, otherwise, append and then
>     ++   * sort at the end.
>     ++   */
>     ++  for (i = 0; !fn && i < istate->cache_nr; i++) {
>     ++          const struct cache_entry *ce = istate->cache[i];
>     ++          if (ce_stage(ce) == 1)
>     ++                  fn = read_one_entry;
>     ++  }
>     ++
>     ++  if (!fn)
>     ++          fn = read_one_entry_quick;
>     ++  err = read_tree_recursive(the_repository, tree, "", 0, 1, &pathspec, fn, istate);
>     ++  if (err)
>                 die("unable to read tree entries %s", tree_name);
>
>     ++  /*
>     ++   * Sort the cache entry -- we need to nuke the cache tree, though.
>     ++   */
>     ++  if (fn == read_one_entry_quick) {
>     ++          cache_tree_free(&istate->cache_tree);
>     ++          QSORT(istate->cache, istate->cache_nr, cmp_cache_name_compare);
>     ++  }
>     ++
>         for (i = 0; i < istate->cache_nr; i++) {
>     +           struct cache_entry *ce = istate->cache[i];
>     +           switch (ce_stage(ce)) {
> 4:  33810d3c10c < -:  ----------- merge-ort: move cmp_cache_name_compare() from tree.c
> 5:  fb10246b85b < -:  ----------- ls-files: refactor read_one_entry_quick() to use a strbuf
> 6:  0c065615aec ! 5:  05eecdd7519 tree.h API: remove support for starting at prefix != ""
>     @@ Metadata
>       ## Commit message ##
>          tree.h API: remove support for starting at prefix != ""
>
>     -    Every caller or the read_tree_recursive() function hardcoded a
>     +    Every caller of the read_tree_recursive() function hardcoded a
>          starting point of "" in the tree. So let's simply remove that
>          parameter.
>
>     -    It might be useful in the future to get this functionality back,
>     -    there's no reason we won't have a read_tree_recursive() use-case that
>     -    would want to start in a subdirectory.
>     +    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).
>
>     -    But if and when that happens we can just add something like a
>     -    read_tree_recursive_subdir() and have both read_tree_recursive() and
>     -    that function be a thin wrapper for read_tree_1().
>     +    If in the future we need to support recursively reading trees without
>     +    starting at the root we can easily add a read_tree_recursive_subdir(),
>     +    and make that function a thin wrapper for read_tree_1().
>
>          In the meantime there's no reason to keep around what amounts to dead
>     -    code just in case we need it in the future.
>     +    code, just in case we need it in the future.
>
>          Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>
>     @@ builtin/log.c: int cmd_show(int argc, const char **argv, const char *prefix)
>
>       ## builtin/ls-files.c ##
>      @@ builtin/ls-files.c: void overlay_tree_on_index(struct index_state *istate,
>     -                          PATHSPEC_PREFER_CWD, prefix, matchbuf);
>     -   } else
>     -           memset(&pathspec, 0, sizeof(pathspec));
>     --  if (read_tree_recursive(the_repository, tree, "", 0, 1,
>     -+  if (read_tree_recursive(the_repository, tree, 1,
>     -                           &pathspec, read_one_entry_quick, istate))
>     +
>     +   if (!fn)
>     +           fn = read_one_entry_quick;
>     +-  err = read_tree_recursive(the_repository, tree, "", 0, 1, &pathspec, fn, istate);
>     ++  err = read_tree_recursive(the_repository, tree, 1, &pathspec, fn, istate);
>     +   if (err)
>                 die("unable to read tree entries %s", tree_name);
>
>
>     @@ tree.h: typedef int (*read_tree_fn_t)(const struct object_id *, struct strbuf *,
>      -                  const char *base, int baselen,
>                         int stage, const struct pathspec *pathspec,
>                         read_tree_fn_t fn, void *context);
>     -
>     + #endif /* TREE_H */
> 7:  9685c7c5c50 ! 6:  fcecc82e1c8 tree.h API: remove "stage" parameter from read_tree_recursive()
>     @@ builtin/log.c: int cmd_show(int argc, const char **argv, const char *prefix)
>                         break;
>
>       ## builtin/ls-files.c ##
>     -@@ builtin/ls-files.c: static int read_one_entry_quick(const struct object_id *oid,
>     -                           struct strbuf *base,
>     -                           const char *pathname,
>     -                           unsigned mode,
>     --                          int stage, void *context)
>     -+                          void *context)
>     +@@ builtin/ls-files.c: static int read_one_entry_opt(struct index_state *istate,
>     +                         const struct object_id *oid,
>     +                         struct strbuf *base,
>     +                         const char *pathname,
>     +-                        unsigned mode, int stage, int opt)
>     ++                        unsigned mode, int opt)
>       {
>     -   struct index_state *istate = context;
>         int len;
>     -@@ builtin/ls-files.c: static int read_one_entry_quick(const struct object_id *oid,
>     +   struct cache_entry *ce;
>     +@@ builtin/ls-files.c: static int read_one_entry_opt(struct index_state *istate,
>         ce = make_empty_cache_entry(istate, base->len + len);
>
>         ce->ce_mode = create_ce_mode(mode);
>     @@ builtin/ls-files.c: static int read_one_entry_quick(const struct object_id *oid,
>         ce->ce_namelen = base->len + len;
>         memcpy(ce->name, base->buf, base->len);
>         memcpy(ce->name + base->len, pathname, len+1);
>     +@@ builtin/ls-files.c: 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;
>     +   return read_one_entry_opt(istate, oid, base, pathname,
>     +-                            mode, stage,
>     ++                            mode,
>     +                             ADD_CACHE_OK_TO_ADD|ADD_CACHE_SKIP_DFCHECK);
>     + }
>     +
>     +@@ builtin/ls-files.c: 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;
>     +   return read_one_entry_opt(istate, oid, base, pathname,
>     +-                            mode, stage,
>     ++                            mode,
>     +                             ADD_CACHE_JUST_APPEND);
>     + }
>     +
>      @@ builtin/ls-files.c: void overlay_tree_on_index(struct index_state *istate,
>     -                          PATHSPEC_PREFER_CWD, prefix, matchbuf);
>     -   } else
>     -           memset(&pathspec, 0, sizeof(pathspec));
>     --  if (read_tree_recursive(the_repository, tree, 1,
>     -+  if (read_tree_recursive(the_repository, tree,
>     -                           &pathspec, read_one_entry_quick, istate))
>     +
>     +   if (!fn)
>     +           fn = read_one_entry_quick;
>     +-  err = read_tree_recursive(the_repository, tree, 1, &pathspec, fn, istate);
>     ++  err = read_tree_recursive(the_repository, tree, &pathspec, fn, istate);
>     +   if (err)
>                 die("unable to read tree entries %s", tree_name);
>
>
>     @@ tree.c: static int read_tree_1(struct repository *r,
>       }
>
>       ## tree.h ##
>     -@@ tree.h: void free_tree_buffer(struct tree *tree);
>     - struct tree *parse_tree_indirect(const struct object_id *oid);
>     +@@ tree.h: 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 *);
>     @@ tree.h: void free_tree_buffer(struct tree *tree);
>      -                  int stage, const struct pathspec *pathspec,
>      +                  const struct pathspec *pathspec,
>                         read_tree_fn_t fn, void *context);
>     -
>       #endif /* TREE_H */
> --
> 2.31.0.rc0.126.g04f22c5b82
>

  parent reply	other threads:[~2021-03-08 19:19 UTC|newest]

Thread overview: 262+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-18  0:29 [PATCH] read_tree(): pass "int stage" as context to read_tree_recursive() Nguyễn Thái Ngọc Duy
2021-03-06 19:34 ` [PATCH 0/7] Move the read_tree() function to its only user Ævar Arnfjörð Bjarmason
2021-03-06 22:06   ` Elijah Newren
2021-03-08  2:21   ` [PATCH v2 0/6] " Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 00/30] tree-walk: mostly "mode" to "enum object_type" Ævar Arnfjörð Bjarmason
2021-03-09  0:10       ` Elijah Newren
2021-03-09 20:41       ` Elijah Newren
2021-03-09 21:48         ` Ævar Arnfjörð Bjarmason
2021-03-12  6:44           ` Elijah Newren
2021-03-16  2:12       ` [PATCH v2 00/29] tree-walk: mostly replace "mode" with " Ævar Arnfjörð Bjarmason
2021-03-16  7:04         ` Elijah Newren
2021-03-16  8:30           ` Ævar Arnfjörð Bjarmason
2021-03-16 15:57         ` [PATCH v3 00/32] " Ævar Arnfjörð Bjarmason
2021-03-16 17:28           ` Elijah Newren
2021-03-21  0:00           ` [PATCH v4 00/29] " Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 01/29] notes & match-trees: use name_entry's "pathlen" member Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 02/29] cache.h: add a comment to object_type() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 03/29] tree-walk.h: add object_type member to name_entry Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 04/29] tree-walk.c: migrate to using new "object_type" field when possible Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 05/29] fast-import tests: test for sorting dir/file foo v.s. foo.txt Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 06/29] mktree tests: test that "mode" is passed when sorting Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 07/29] diff " Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 08/29] cache.h: have base_name_compare() take "is tree?", not "mode" Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 09/29] tree-walk.h users: switch object_type(...) to new .object_type Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 10/29] tree.h: format argument lists of read_tree_recursive() users Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 11/29] tree.h API: make read_tree_fn_t take an "enum object_type" Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 12/29] tree-walk.h users: migrate "p->mode &&" pattern Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 13/29] tree-walk.h users: refactor chained "mode" if/else into switch Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 14/29] tree-walk.h users: migrate miscellaneous "mode" to "object_type" Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 15/29] merge-tree tests: test for the mode comparison in same_entry() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 16/29] merge-ort: correct reference to test in 62fdec17a11 Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 17/29] fsck.c: switch on "object_type" in fsck_walk_tree() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 18/29] tree-walk.h users: use temporary variable(s) for "mode" Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 19/29] tree-walk.h API: formatting changes for subsequent commit Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 20/29] tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 21/29] match-trees: use "tmp" for mode in shift_tree_by() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 22/29] tree-walk.h API: add get_tree_entry_type() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 23/29] tree-walk.h API: document and format tree_entry_extract() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 24/29] tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode() Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 25/29] tree-walk.h API: add a tree_entry_extract_all() function Ævar Arnfjörð Bjarmason
2021-03-21  0:00             ` [PATCH v4 26/29] tree-walk.h API: add get_tree_entry_all() Ævar Arnfjörð Bjarmason
2021-03-21  0:01             ` [PATCH v4 27/29] tree-walk.h API: add a get_tree_entry_path() function Ævar Arnfjörð Bjarmason
2021-03-21  0:01             ` [PATCH v4 28/29] blame: emit a better error on 'git blame directory' Ævar Arnfjörð Bjarmason
2021-03-21  0:01             ` [PATCH v4 29/29] tree-walk.h API: add a tree_entry_extract_type() function Ævar Arnfjörð Bjarmason
2021-03-21  1:16             ` [PATCH v4 00/29] tree-walk: mostly replace "mode" with "enum object_type" Junio C Hamano
2021-03-21 12:26               ` Ævar Arnfjörð Bjarmason
2021-03-21 12:39                 ` [PATCH 0/2] diff --no-index: fix test blind spots Ævar Arnfjörð Bjarmason
2021-03-21 12:39                   ` [PATCH 1/2] diff --no-index tests: add test for --exit-code Ævar Arnfjörð Bjarmason
2021-03-21 18:33                     ` Ramsay Jones
2021-03-21 21:33                       ` Junio C Hamano
2021-03-21 22:44                         ` Ævar Arnfjörð Bjarmason
2021-03-21 12:39                   ` [PATCH 2/2] diff --no-index tests: test mode normalization Ævar Arnfjörð Bjarmason
2021-03-21 22:36                   ` [PATCH v2 0/2] diff --no-index: fix test blind spots Ævar Arnfjörð Bjarmason
2021-03-21 22:36                     ` [PATCH v2 1/2] diff --no-index tests: add test for --exit-code Ævar Arnfjörð Bjarmason
2021-03-21 22:36                     ` [PATCH v2 2/2] diff --no-index tests: test mode normalization Ævar Arnfjörð Bjarmason
2021-03-22 19:22                       ` Junio C Hamano
2021-03-22  4:27                     ` [PATCH v2 0/2] diff --no-index: fix test blind spots Junio C Hamano
2021-03-23 16:40                     ` [PATCH v3 " Ævar Arnfjörð Bjarmason
2021-03-23 16:40                       ` [PATCH v3 1/2] diff --no-index tests: add test for --exit-code Ævar Arnfjörð Bjarmason
2021-03-23 16:40                       ` [PATCH v3 2/2] diff --no-index tests: test mode normalization Ævar Arnfjörð Bjarmason
2021-03-23 16:47                       ` [PATCH v3 0/2] diff --no-index: fix test blind spots Junio C Hamano
2021-03-21 17:13                 ` [PATCH v4 00/29] tree-walk: mostly replace "mode" with "enum object_type" Junio C Hamano
2021-03-21 18:42                   ` Ævar Arnfjörð Bjarmason
2021-03-31 19:09                     ` [PATCH v5 00/18] tree-walk.h: slimmed down Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 01/18] cache.h: add a comment to object_type() Ævar Arnfjörð Bjarmason
2021-03-31 22:33                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 02/18] merge-ort: correct reference to test in 62fdec17a11 Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 03/18] cache.h: have base_name_compare() take "is tree?", not "mode" Ævar Arnfjörð Bjarmason
2021-03-31 22:55                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 04/18] fast-import tests: test for sorting dir/file foo v.s. foo.txt Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 05/18] mktree tests: test that "mode" is passed when sorting Ævar Arnfjörð Bjarmason
2021-03-31 23:04                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 06/18] diff " Ævar Arnfjörð Bjarmason
2021-03-31 23:07                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 07/18] merge-tree tests: test for the mode comparison in same_entry() Ævar Arnfjörð Bjarmason
2021-03-31 23:12                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 08/18] blame: emit a better error on 'git blame directory' Ævar Arnfjörð Bjarmason
2021-03-31 23:26                         ` Junio C Hamano
2021-04-02  9:26                           ` Ævar Arnfjörð Bjarmason
2021-04-02 21:08                             ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 09/18] notes & match-trees: use name_entry's "pathlen" member Ævar Arnfjörð Bjarmason
2021-03-31 23:32                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 10/18] tree-walk.h users: use temporary variable(s) for "mode" Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 11/18] match-trees: use "tmp" for mode in shift_tree_by() Ævar Arnfjörð Bjarmason
2021-03-31 23:35                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 12/18] tree.h: format argument lists of read_tree() users Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 13/18] tree-walk.h API: formatting changes for subsequent commit Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 14/18] tree-walk.h API doc: improve documentation of get_tree_entry() Ævar Arnfjörð Bjarmason
2021-04-01 20:30                         ` Junio C Hamano
2021-04-02  9:27                           ` Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 15/18] tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode() Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 16/18] tree-walk.h API: add a get_tree_entry_path() function Ævar Arnfjörð Bjarmason
2021-04-01 20:41                         ` Junio C Hamano
2021-04-02  9:41                           ` Ævar Arnfjörð Bjarmason
2021-03-31 19:09                       ` [PATCH v5 17/18] tree-walk.h API: document and format tree_entry_extract() Ævar Arnfjörð Bjarmason
2021-04-01 20:46                         ` Junio C Hamano
2021-03-31 19:09                       ` [PATCH v5 18/18] tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode() Ævar Arnfjörð Bjarmason
2021-04-01 20:49                         ` Junio C Hamano
2021-03-16 15:57         ` [PATCH v3 01/32] diff.c: remove redundant canon_mode() call Ævar Arnfjörð Bjarmason
2021-03-16 15:57         ` [PATCH v3 02/32] notes & match-trees: use name_entry's "pathlen" member Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 03/32] cache.h: add a comment to object_type() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 04/32] tree-walk.h: add object_type member to name_entry Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 05/32] tree-walk.c: migrate to using new "object_type" field when possible Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 06/32] fast-import tests: test for sorting dir/file foo v.s. foo.txt Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 07/32] mktree tests: test that "mode" is passed when sorting Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 08/32] diff " Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 09/32] cache.h: have base_name_compare() take "is tree?", not "mode" Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 10/32] tree-walk.h users: switch object_type(...) to new .object_type Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 11/32] tree.h: format argument lists of read_tree_recursive() users Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 12/32] tree.h users: format argument lists in archive.c Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 13/32] archive: get rid of 'stage' parameter Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 14/32] tree.h API: make read_tree_fn_t take an "enum object_type" Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 15/32] tree-walk.h users: migrate "p->mode &&" pattern Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 16/32] tree-walk.h users: refactor chained "mode" if/else into switch Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 17/32] tree-walk.h users: migrate miscellaneous "mode" to "object_type" Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 18/32] merge-tree tests: test for the mode comparison in same_entry() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 19/32] merge-ort: correct reference to test in 62fdec17a11 Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 20/32] fsck.c: switch on "object_type" in fsck_walk_tree() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 21/32] tree-walk.h users: use temporary variable(s) for "mode" Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 22/32] tree-walk.h API: formatting changes for subsequent commit Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 23/32] tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 24/32] match-trees: use "tmp" for mode in shift_tree_by() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 25/32] tree-walk.h API: add get_tree_entry_type() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 26/32] tree-walk.h API: document and format tree_entry_extract() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 27/32] tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 28/32] tree-walk.h API: add a tree_entry_extract_all() function Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 29/32] tree-walk.h API: add get_tree_entry_all() Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 30/32] tree-walk.h API: add a get_tree_entry_path() function Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 31/32] blame: emit a better error on 'git blame directory' Ævar Arnfjörð Bjarmason
2021-03-16 15:58         ` [PATCH v3 32/32] tree-walk.h API: add a tree_entry_extract_type() function Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 01/29] diff.c: remove redundant canon_mode() call Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 02/29] notes & match-trees: use name_entry's "pathlen" member Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 03/29] cache.h: add a comment to object_type() Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 04/29] tree-walk.h: add object_type member to name_entry Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 05/29] tree-walk.c: migrate to using new "object_type" field when possible Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 06/29] cache.h: have base_name_compare() take "is tree?", not "mode" Ævar Arnfjörð Bjarmason
2021-03-16  5:49         ` Elijah Newren
2021-03-16  2:12       ` [PATCH v2 07/29] tree-walk.h users: switch object_type(...) to new .object_type Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 08/29] tree.h: format argument lists of read_tree_recursive() users Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 09/29] tree.h users: format argument lists in archive.c Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 10/29] archive: get rid of 'stage' parameter Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 11/29] tree.h API: make read_tree_fn_t take an "enum object_type" Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 12/29] tree-walk.h users: migrate "p->mode &&" pattern Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 13/29] tree-walk.h users: refactor chained "mode" if/else into switch Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 14/29] tree-walk.h users: migrate miscellaneous "mode" to "object_type" Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 15/29] merge-tree tests: test for the mode comparison in same_entry() Ævar Arnfjörð Bjarmason
2021-03-16  2:12       ` [PATCH v2 16/29] merge-ort: correct reference to test in 62fdec17a11 Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 17/29] fsck.c: switch on "object_type" in fsck_walk_tree() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 18/29] tree-walk.h users: use temporary variable(s) for "mode" Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 19/29] tree-walk.h API: formatting changes for subsequent commit Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 20/29] tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 21/29] tree-walk.h API users: use "tmp" for mode in shift_tree_by() Ævar Arnfjörð Bjarmason
2021-03-16  6:34         ` Elijah Newren
2021-03-16  2:13       ` [PATCH v2 22/29] tree-walk.h API: add get_tree_entry_type() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 23/29] tree-walk.h API: document and format tree_entry_extract() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 24/29] tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 25/29] tree-walk.h API: add a tree_entry_extract_all() function Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 26/29] tree-walk.h API: add get_tree_entry_all() Ævar Arnfjörð Bjarmason
2021-03-16  2:13       ` [PATCH v2 27/29] tree-walk.h API: add a get_tree_entry_path() function Ævar Arnfjörð Bjarmason
2021-03-16  6:50         ` Elijah Newren
2021-03-16  2:13       ` [PATCH v2 28/29] blame: emit a better error on 'git blame directory' Ævar Arnfjörð Bjarmason
2021-03-16  6:55         ` Elijah Newren
2021-03-16  2:13       ` [PATCH v2 29/29] tree-walk.h API: add a tree_entry_extract_type() function Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 01/30] diff.c: remove redundant canon_mode() call Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 02/30] notes & match-trees: use name_entry's "pathlen" member Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 03/30] cache.h: add a comment to object_type() Ævar Arnfjörð Bjarmason
2021-03-09 16:40       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 04/30] tree-walk.h: add object_type member to name_entry Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 05/30] tree-walk.c: migrate to using new "object_type" field when possible Ævar Arnfjörð Bjarmason
2021-03-09 16:44       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 06/30] cache.h: have base_name_compare() take "is tree?", not "mode" Ævar Arnfjörð Bjarmason
2021-03-09 16:56       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 07/30] tree-walk.h users: switch object_type(...) to new .object_type Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 08/30] tree.h: format argument lists of read_tree_recursive() users Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 09/30] tree.h users: format argument lists in archive.c Ævar Arnfjörð Bjarmason
2021-03-09 17:04       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 10/30] archive: get rid of 'stage' parameter Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 11/30] tree.h API: make read_tree_fn_t take an "enum object_type" Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 12/30] tree-walk.h users: migrate "p->mode &&" pattern Ævar Arnfjörð Bjarmason
2021-03-09 17:09       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 13/30] tree-walk.h users: refactor chained "mode" if/else into switch Ævar Arnfjörð Bjarmason
2021-03-09 17:11       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 14/30] tree-walk.h users: migrate miscellaneous "mode" to "object_type" Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 15/30] merge-tree tests: test for the mode comparison in same_entry() Ævar Arnfjörð Bjarmason
2021-03-09 17:19       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 16/30] merge-ort: correct reference to test in 62fdec17a11 Ævar Arnfjörð Bjarmason
2021-03-09 17:22       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 17/30] fsck.c: switch on "object_type" in fsck_walk_tree() Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 18/30] tree-walk.h users: use temporary variable(s) for "mode" Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 19/30] tree-walk.h API: formatting changes for subsequent commit Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 20/30] tree-walk.h API: rename get_tree_entry() to get_tree_entry_mode() Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 21/30] tree-walk.h API users: use "tmp" for mode in shift_tree_by() Ævar Arnfjörð Bjarmason
2021-03-09 17:47       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 22/30] tree-walk.h API: Add get_tree_entry_type() Ævar Arnfjörð Bjarmason
2021-03-09 17:56       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 23/30] tree-walk.h API: add a get_tree_entry_path() function Ævar Arnfjörð Bjarmason
2021-03-09 18:17       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 24/30] tree-walk.h API: document and format tree_entry_extract() Ævar Arnfjörð Bjarmason
2021-03-09 18:28       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 25/30] tree-entry.h API: rename tree_entry_extract() to tree_entry_extract_mode() Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 26/30] tree-walk.h API: add a tree_entry_extract_all() function Ævar Arnfjörð Bjarmason
2021-03-09 18:30       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 27/30] tree-walk.h API: add a tree_entry_extract_type() function Ævar Arnfjörð Bjarmason
2021-03-08 15:06     ` [PATCH 28/30] tree-walk.h API users: rename "struct name_entry"'s "mode" to "raw_mode" Ævar Arnfjörð Bjarmason
2021-03-09 18:53       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 29/30] tree.h API users: rename read_tree_fn_t's " Ævar Arnfjörð Bjarmason
2021-03-09 19:02       ` Elijah Newren
2021-03-08 15:06     ` [PATCH 30/30] tree-walk.h API: move canon_mode() back out of decode_tree_entry() Ævar Arnfjörð Bjarmason
2021-03-09 20:23       ` Elijah Newren
2021-03-08 19:18     ` Elijah Newren [this message]
2021-03-15 23:43     ` [PATCH v3 0/9] read_tree() and read_tree_recursive() refactoring Ævar Arnfjörð Bjarmason
2021-03-16  5:37       ` Elijah Newren
2021-03-16 15:52       ` [PATCH v4 " Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 1/9] ls-files tests: add meaningful --with-tree tests Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 2/9] tree.c API: move read_tree() into builtin/ls-files.c Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 3/9] ls-files: don't needlessly pass around stage variable Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 4/9] ls-files: refactor away read_tree() Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 5/9] tree.h API: remove support for starting at prefix != "" Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 6/9] tree.h API: remove "stage" parameter from read_tree_recursive() Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 7/9] tree.h API: rename read_tree_recursive() to read_tree() Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 8/9] show tests: add test for "git show <tree>" Ævar Arnfjörð Bjarmason
2021-03-16 15:52       ` [PATCH v4 9/9] tree.h API: expose read_tree_1() as read_tree_at() Ævar Arnfjörð Bjarmason
2021-03-17 17:38       ` [PATCH v3 0/9] read_tree() and read_tree_recursive() refactoring Junio C Hamano
2021-03-20 22:37         ` [PATCH v5 0/8] " Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 1/8] show tests: add test for "git show <tree>" Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 2/8] ls-files tests: add meaningful --with-tree tests Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 3/8] tree.c API: move read_tree() into builtin/ls-files.c Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 4/8] ls-files: don't needlessly pass around stage variable Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 5/8] ls-files: refactor away read_tree() Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 6/8] archive: stop passing "stage" through read_tree_recursive() Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 7/8] tree.h API: expose read_tree_1() as read_tree_at() Ævar Arnfjörð Bjarmason
2021-03-20 22:37           ` [PATCH v5 8/8] tree.h API: simplify read_tree_recursive() signature Ævar Arnfjörð Bjarmason
2021-03-20 23:08           ` [PATCH v5 0/8] read_tree() and read_tree_recursive() refactoring Junio C Hamano
2021-03-15 23:43     ` [PATCH v3 1/9] ls-files tests: add meaningful --with-tree tests Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 2/9] tree.c API: move read_tree() into builtin/ls-files.c Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 3/9] ls-files: don't needlessly pass around stage variable Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 4/9] ls-files: refactor away read_tree() Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 5/9] tree.h API: remove support for starting at prefix != "" Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 6/9] tree.h API: remove "stage" parameter from read_tree_recursive() Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 7/9] tree.h API: rename read_tree_recursive() to read_tree() Ævar Arnfjörð Bjarmason
2021-03-15 23:43     ` [PATCH v3 8/9] show tests: add test for "git show <tree>" Ævar Arnfjörð Bjarmason
2021-03-16  5:19       ` Elijah Newren
2021-03-15 23:43     ` [PATCH v3 9/9] tree.h API: expose read_tree_1() as read_tree_at() Ævar Arnfjörð Bjarmason
2021-03-08  2:21   ` [PATCH v2 1/6] ls-files tests: add meaningful --with-tree tests Ævar Arnfjörð Bjarmason
2021-03-08  2:21   ` [PATCH v2 2/6] tree.c API: move read_tree() into builtin/ls-files.c Ævar Arnfjörð Bjarmason
2021-03-08 18:06     ` Junio C Hamano
2021-03-12 21:41     ` Junio C Hamano
2021-03-08  2:21   ` [PATCH v2 3/6] ls-files: don't needlessly pass around stage variable Ævar Arnfjörð Bjarmason
2021-03-08 18:18     ` Junio C Hamano
2021-03-08  2:21   ` [PATCH v2 4/6] ls-files: refactor away read_tree() Ævar Arnfjörð Bjarmason
2021-03-08 18:19     ` Junio C Hamano
2021-03-08  2:21   ` [PATCH v2 5/6] tree.h API: remove support for starting at prefix != "" Ævar Arnfjörð Bjarmason
2021-03-08  2:21   ` [PATCH v2 6/6] tree.h API: remove "stage" parameter from read_tree_recursive() Ævar Arnfjörð Bjarmason
2021-03-06 19:34 ` [PATCH 1/7] tree.c API: move read_tree() into builtin/ls-files.c Ævar Arnfjörð Bjarmason
2021-03-06 19:34 ` [PATCH 2/7] ls-files: don't needlessly pass around stage variable Ævar Arnfjörð Bjarmason
2021-03-06 19:34 ` [PATCH 3/7] ls-files: remove cache juggling + sorting Ævar Arnfjörð Bjarmason
2021-03-06 21:37   ` Elijah Newren
2021-03-06 19:34 ` [PATCH 4/7] merge-ort: move cmp_cache_name_compare() from tree.c Ævar Arnfjörð Bjarmason
2021-03-06 19:34 ` [PATCH 5/7] ls-files: refactor read_one_entry_quick() to use a strbuf Ævar Arnfjörð Bjarmason
2021-03-06 19:34 ` [PATCH 6/7] tree.h API: remove support for starting at prefix != "" Ævar Arnfjörð Bjarmason
2021-03-06 21:55   ` Elijah Newren
2021-03-06 19:34 ` [PATCH 7/7] tree.h API: remove "stage" parameter from read_tree_recursive() Ævar Arnfjörð Bjarmason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABPp-BEfEQZzymkTGVTJ7cHjaPfXNeek+ikm5C0YYD2YYjpsFw@mail.gmail.com \
    --to=newren@gmail.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.