From: Teng Long <dyroneteng@gmail.com>
To: avarab@gmail.com
Cc: Johannes.Schindelin@gmx.de, congdanhqx@gmail.com,
dyroneteng@gmail.com, git@vger.kernel.org, gitster@pobox.com,
johncai86@gmail.com, martin.agren@gmail.com, peff@peff.net,
tenglong.tl@alibaba-inc.com
Subject: Re: [PATCH v10 9/9] ls-tree.c: introduce "--format" option
Date: Tue, 18 Jan 2022 20:59:39 +0800 [thread overview]
Message-ID: <20220118125939.99956-1-dyroneteng@gmail.com> (raw)
In-Reply-To: <220113.86o84gvwfd.gmgdl@evledraar.gmail.com>
On Thu, Jan 13, 2022 at 5:04 PM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
> > diff --git a/Documentation/git-ls-tree.txt b/Documentation/git-ls-tree.txt
> > index 729370f235..ebdde6eae3 100644
> > --- a/Documentation/git-ls-tree.txt
> > +++ b/Documentation/git-ls-tree.txt
> > @@ -10,9 +10,9 @@ SYNOPSIS
> > --------
> > [verse]
> > 'git ls-tree' [-d] [-r] [-t] [-l] [-z]
> > - [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]]
> > - <tree-ish> [<path>...]
> > -
> > + [--name-only] [--name-status] [--object-only]
> > + [--full-name] [--full-tree] [--abbrev[=<n>]]
>
> Let's split up this re-flow only change into its own commit? I.e. the
> only non-whitespace change here is beginning with [--format].
>
> If it was the right thing to do to re-flow this then we didn't need
> [--format=<format>] to exist to do so...
Agree, especially if "--format" comes earlier as you mentioned in
another reply.
The doc change should only include the new "--format" here, so
we just:
diff --git a/Documentation/git-ls-tree.txt b/Documentation/git-ls-tree.txt
index db02d6d79a..b02f028aca 100644
--- a/Documentation/git-ls-tree.txt
+++ b/Documentation/git-ls-tree.txt
@@ -10,5 +10,5 @@ SYNOPSIS
--------
[verse]
'git ls-tree' [-d] [-r] [-t] [-l] [-z]
- [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]]
+ [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>]
<tree-ish> [<path>...]
is OK.
> > + [--format=<format>] <tree-ish> [<path>...]
> > DESCRIPTION
>
> Removing this \n breaks the formatting in the file. See "make man && man
> ./Documentation/git-ls-tree.1". The ./Documentation/doc-diff utility is
> also handy for sanity checking the documentation formatting.
This is my mistake and will be corrected in the next patch.
> > -----------
> > Lists the contents of a given tree object, like what "/bin/ls -a" does
> > @@ -79,6 +79,16 @@ OPTION
> > Do not limit the listing to the current working directory.
> > Implies --full-name.
> >
> > +--format=<format>::
> > + A string that interpolates `%(fieldname)` from the result
> > + being shown. It also interpolates `%%` to `%`, and
> > + `%xx` where `xx` are hex digits interpolates to character
> > + with hex code `xx`; for example `%00` interpolates to
> > + `\0` (NUL), `%09` to `\t` (TAB) and `%0a` to `\n` (LF).
> > + When specified, `--format` cannot be combined with other
> > + format-altering options, including `--long`, `--name-only`
> > + and `--object-only`.
> > +
>
> These new docs make sense & seem to cover all the basis, thanks!
Actually, the content is not from me, I borrowed it from other
documents, but I'm glad if it's described and placed here correctly.
> Here because we've added --format discussing the previous pseudo-format
> as a "default" format becomes confusing. Let's instead say:
>
> The output format of `ls-tree` is determined by either the `--format` option,
> or other format-altering options such as `--name-long` etc. (see `--format` above).
>
> The use of certain `--format` directives is equivalent to using those options,
> but invoking the full formatting machinery can be slower than using an appropriate
> formatting option.
>
> In cases where the `--format` would exactly map to an existing option `ls-tree` will
> use the appropriate faster path. Thus the default format is equivalent to:
> ---
> %(mode) %(type) %(object)%x09%(file)
> ---
Make sense.
I will use this paragraph instead in next patch except a tiny
nit (s/--name-long/--name-only/).
> > +The output format changes to:
> > +
> > + {"object":"<object>", "file":"<file>"}
>
> This one-liner is guaranteed to result in invalid JSON on some
> repositories, both because JSON is inherently a bad fit for git's data
> model (JSON needs to be in one Unicode encoding, Git's tree data might
> me in a mixture of encodings), and because it'll break if the file
> includes a '"'.
Correct and especially we use a "quote_c" style behind.
> I think it's better to just replace this with some example involving -z,
> or at least prominently note that this is broken in the general case,
> but can be used ad-hoc to quickly check things with "jq" or whatever.
Your suggestion is great, but personally I don't want to introduce more
complexity and other tools in here, and try to describe it in a simple way.
I think the below maybe is enough:
@@ -117,14 +127,10 @@ Customized format:
It is possible to print in a custom format by using the `--format` option,
which is able to interpolate different fields using a `%(fieldname)` notation.
-For example, if you want to only print the <object> and <file> fields with a
-JSON style, executing with a specific "--format" like
-
- git ls-tree --format='{"object":"%(object)", "file":"%(file)"}' <tree-ish>
-
-The output format changes to:
+For example, if you only care about the <object> and <file> fields, you can
+execute with a specific "--format" like
- {"object":"<object>", "file":"<file>"}
+ git ls-tree --format="%(object) %(file)" <tree-ish>
FIELD NAMES
-----------
> > +FIELD NAMES
> > +-----------
> > +
> > +Various values from structured fields can be used to interpolate
> > +into the resulting output. For each outputing line, the following
> > +names can be used:
> > +
> > +mode::
> > + The mode of the object.
> > +type::
> > + The type of the object (`blob` or `tree`).
> > +object::
> > + The name of the object.
> > +size[:padded]::
> > + The size of the object ("-" if it's a tree).
> > + It also supports a padded format of size with "%(size:padded)".
> > +file::
> > + The filename of the object.
>
> In
> https://lore.kernel.org/git/cover.1641043500.git.dyroneteng@gmail.com/
> you noted that you changed the field names of e.g. "objectname" to
> "object" etc. You're right that I picked these as-is from the
> git-for-each-ref formatting.
>
> 1/3 of your reasoning for doing so was to make it consistent with the
> documentation examples of e.g.:
>
> <mode> SP <type> SP <object> TAB <file>
>
> I think in any case (as noted above) we should change those to use the
> --format), so that leaves just:
>
> - "I prefer to make the name more simple to memorize and type"
> - "I think the names with "object" prefix are [from git-for-each-ref
> and the object* prefixes aren't redundant there, but would be here]".
>
> I think both of those still apply, but I think having these consistent
> with git-for-each-ref outweighs the slight benefit of shorter names.
>
> Right now only a handful of things support these sort of --format
> directives, but we've already got RFC/WIP patches to add that to
> git-cat-file, and are likely to add more in the future.
New and important input for me on this.
> I'd also like us to eventually be able to combine what are now separate
> built-ins with their own --format to expose more deeply some internal
> APIs via IPC. E.g. now you can do this:
>
> git for-each-ref --format='%(refname) %(tree)'
>
> But to list each of those trees you'd need to pipe that output into this
> new 'git ls-tree --format. But imagine being able to do something like:
>
> git for-each-ref --format='%(refname) %(git-ls-tree --format %%(objectname) %(tree))'
Make sense.
> Where we'd just invoke git-ls-tree for you without running a full
> sub-process. I think both for that hypothetical and working with the two
> --formats now having to use %(type) in some places but %(objecttype)
> etc. in others is just needlessly confusing. Let's just consistently use
> the same format names everywhere.
>
> Specifically for your s/path/file/ name change, that's just inaccurate, consider:
>
> $ ./git ls-tree --format="%(mode) %(type) %(file)" -t HEAD -- t/README
> 040000 tree t
> 100644 blob t/README
>
> And:
>
> $ $ (cd t && ../git ls-tree --format="%(mode) %(type) %(file)" -t -r HEAD -- README)
> 040000 tree ./
> 100644 blob README
>
> I.e. we talk about <path> in the existing SYNOPSIS for a reason. That we
> had a "<file>" in the existing format demo was a bug/shorthand that we
> shouldn't be propagating further.
Should use "path" instead of "file" in here.
Make sense.
> > [...]
> > +static const char *format;
> > +static const char *default_format = "%(mode) %(type) %(object)%x09%(file)";
> > +static const char *long_format = "%(mode) %(type) %(object) %(size:padded)%x09%(file)";
> > +static const char *name_only_format = "%(file)";
> > +static const char *object_only_format = "%(object)";
> > +
>
> One advantage of keeping the variable names I picked in
> https://lore.kernel.org/git/RFC-patch-6.7-eac299f06ff-20211217T131635Z-avarab@gmail.com/
> is that they align, so you can instantly see that the first two are
> equivalent until the "%x09".
Ha. Thanks.I think they not align in here is because my variables' names not align :)
Actually, I was hesitating to use like "object" or follow the "objectname" like
rules. I would like git to have unified naming style on this, but I didn't have
that much input (other usage already on the way) at the time, so I chose to use
a shorter and probably more memorable name based on the document.
But now, I agree with you, to use the same naming conventions because on the whole,
especially multiple commands have the same appeal on format naming, uniformity is
more important than memorability of a single command, and I also think maybe we
might need to describe and maintain these rules of <fieldname> in a document
somewhere.
> It also makes it easier to review to avoid such churn, to see what you
> really changed I'm looking at a local version of a range-diff where I
> renamed these, the struct you renamed etc. back just to see what you
> /really/ changed. I.e. what are functional v.s. renaming changes.
>
> Here you changed my '"%"PRIuMAX' to '"%" PRIuMAX'. The former is the
> prevailing style in this codebase, and avoiding the formatting churn
> makes the inter-diff easier to read.
Will fix it in next patch.
> Ditto some harder to review interdiff due to renaming
> churn. I.e. s/line/sb/ in both this and expand_show_tree(). I really
> wouldn't care at all except because of all the manual work in reviewing
> the inter-diff between my original version & this derived version.
>
> In the case of "line" that's not even an improvement. With a --format
> we're not building a "line", the user is free to insert any arbitrary
> directives including \n's, so we might be working on multiple lines.
Make sense.
Will optimize in next patch.
> As I noted in my RFC CL (https://lore.kernel.org/git/RFC-cover-0.7-00000000000-20211217T131635Z-avarab@gmail.com/):
>
> "the tests for ls-tree are really
> lacking. E.g. I seem to have a rather obvious bug in how -t and the
> --format interact here, but no test catches it."
>
> So first, in my version of adding --format I was careful to make
> --name-only etc. imply a given --format, and then only at the last
> minute would we take the "fast path":
> https://lore.kernel.org/git/RFC-patch-6.7-eac299f06ff-20211217T131635Z-avarab@gmail.com/
I'm not sure I understand all the meanings above. I think I have forgot about the content here.
and I have to add some tests for other options like "-t" combined with "--format".
Please correct me if I misunderstood.
> You rewrote that in
> https://lore.kernel.org/git/e0add802fbbabde7e7b3743127b2d4047f1ce760.1641043500.git.dyroneteng@gmail.com/
> and qremoved the limited "GIT_TEST_LS_TREE_FORMAT_BACKEND" testing I
> added, so now the internal --format machinery can't be run through the
> existing tests we do have.
I thought the "GIT_TEST_LS_TREE_FORMAT_BACKEND" is only used in your RFC for testing conveniently,
and should be removed in the end (non-RFC). So I removed it...
So should we add it back?
> Even with that re-added I really wouldn't trust that this code is doing
> the right thing (and as noted, I don't trust my own RFC version
> either). I think e.g. our "coverage" Makefile targets would be a good
> start as a first approximation, i.e. running the /ls-tree/ tests and
> seeing if we have full coverage.
Yeah. I haven't tried it yet, but I will try to run coverage detection when
the next patch is completed
> As I noted in 7/9 I think this patch is 9/9 still mostly something I
> wrote, so that the "author" and Signed-off-by should be preserved. The
> below is a range-diff of an amended version I've been looking at in
> trying to review this. It undoes several (but not all) of your
> formatting/renaming-only changes, just so that I could see what the
> non-formatting changes were:
Sorry for that. I misunderstand something here.
I will fix in the next patch.
Thanks.
next prev parent reply other threads:[~2022-01-18 12:59 UTC|newest]
Thread overview: 236+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-15 11:51 [PATCH 0/3] support `--oid-only` in `ls-tree` Teng Long
2021-11-15 11:51 ` [PATCH 1/3] ls-tree.c: support `--oid-only` option for "git-ls-tree" Teng Long
2021-11-15 15:12 ` Ævar Arnfjörð Bjarmason
2021-11-18 9:28 ` Teng Long
2021-11-18 11:00 ` Ævar Arnfjörð Bjarmason
2021-11-15 19:16 ` Jeff King
2021-11-15 19:25 ` Jeff King
2021-11-18 11:23 ` Teng Long
2021-11-15 11:51 ` [PATCH 2/3] t3104: add related tests for `--oid-only` option Teng Long
2021-11-15 15:54 ` Đoàn Trần Công Danh
2021-11-18 8:45 ` Teng Long
2021-11-15 11:51 ` [PATCH 3/3] git-ls-tree.txt: description of the 'oid-only' option Teng Long
2021-11-15 15:13 ` [PATCH 0/3] support `--oid-only` in `ls-tree` Ævar Arnfjörð Bjarmason
2021-11-15 19:09 ` Jeff King
2021-11-15 21:50 ` Ævar Arnfjörð Bjarmason
2021-11-19 2:57 ` Teng Long
2021-11-15 19:23 ` Jeff King
2021-11-19 12:09 ` [PATCH v2 0/1] " Teng Long
2021-11-19 12:09 ` [PATCH v2 1/1] ls-tree.c: support `--oid-only` option for "git-ls-tree" Teng Long
2021-11-19 13:30 ` Ævar Arnfjörð Bjarmason
2021-11-19 17:32 ` Junio C Hamano
2021-11-22 7:45 ` Teng Long
2021-11-22 11:14 ` Ævar Arnfjörð Bjarmason
2021-11-22 8:07 ` [PATCH v3 0/1] ls-tree.c: support `--oid-only` option Teng Long
2021-11-22 8:07 ` [PATCH v3 1/1] ls-tree.c: support `--oid-only` option for "git-ls-tree" Teng Long
2021-11-22 18:11 ` Peter Baumann
2021-11-22 18:54 ` Junio C Hamano
2021-11-23 1:09 ` Ævar Arnfjörð Bjarmason
2021-11-23 1:26 ` Junio C Hamano
2021-11-23 2:28 ` Ævar Arnfjörð Bjarmason
2021-11-23 2:55 ` Junio C Hamano
2021-11-23 3:35 ` Junio C Hamano
2021-11-23 11:04 ` Ævar Arnfjörð Bjarmason
2021-11-23 0:14 ` Đoàn Trần Công Danh
2021-11-23 4:58 ` [PATCH v4 0/1] ls-tree.c: support `--oid-only` option Teng Long
2021-11-23 4:58 ` [PATCH v4 1/1] ls-tree.c: support `--oid-only` option for "git-ls-tree" Teng Long
2021-11-23 22:32 ` Junio C Hamano
2021-12-06 7:52 ` Teng Long
2021-12-08 2:08 ` [PATCH v5 0/1] support `--object-only` " Teng Long
2021-12-08 2:08 ` [PATCH v5 1/1] ls-tree.c: " Teng Long
2021-12-15 19:25 ` Junio C Hamano
2021-12-16 12:16 ` Teng Long
2021-12-16 21:26 ` Junio C Hamano
2021-12-16 21:29 ` Ævar Arnfjörð Bjarmason
2021-12-17 6:57 ` [PATCH v6 0/1] " Teng Long
2021-12-17 6:57 ` [PATCH v6 1/1] ls-tree.c: " Teng Long
2021-12-17 13:09 ` Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 0/7] ls-tree --format Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 1/7] ls-tree: remove commented-out code Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 2/7] ls-tree: add missing braces to "else" arms Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 3/7] ls-tree: use "enum object_type", not {blob,tree,commit}_type Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 4/7] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 5/7] ls-tree: split up the "init" part of show_tree() Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 6/7] ls-tree: add a --format=<fmt> option Ævar Arnfjörð Bjarmason
2021-12-17 13:30 ` [RFC PATCH 7/7] ls-tree.c: support `--object-only` option for "git-ls-tree" Ævar Arnfjörð Bjarmason
2022-01-01 13:50 ` [PATCH v8 0/8] ls-tree: "--object-only" and "--format" opts Teng Long
2022-01-01 13:50 ` [PATCH v8 1/8] ls-tree: remove commented-out code Teng Long
2022-01-01 13:50 ` [PATCH v8 2/8] ls-tree: add missing braces to "else" arms Teng Long
2022-01-01 13:50 ` [PATCH v8 3/8] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-01-01 13:50 ` [PATCH v8 4/8] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-01-01 13:50 ` [PATCH v8 5/8] ls-tree: split up the "init" part of show_tree() Teng Long
2022-01-04 2:06 ` Junio C Hamano
2022-01-04 9:49 ` Teng Long
2022-01-01 13:50 ` [PATCH v8 6/8] ls-tree.c: support --object-only option for "git-ls-tree" Teng Long
2022-01-04 1:21 ` Junio C Hamano
2022-01-04 7:29 ` Teng Long
2022-01-01 13:50 ` [PATCH v8 7/8] ls-tree.c: introduce struct "shown_data" Teng Long
2022-01-03 23:21 ` Junio C Hamano
2022-01-04 2:02 ` Teng Long
2022-01-01 13:50 ` [PATCH v8 8/8] ls-tree.c: introduce "--format" option Teng Long
2022-01-04 14:38 ` Johannes Schindelin
2022-01-04 15:17 ` Johannes Schindelin
2022-01-05 9:40 ` Teng Long
2022-01-05 9:58 ` Teng Long
2022-01-05 13:09 ` Johannes Schindelin
2022-01-05 16:44 ` Teng Long
2022-01-06 4:31 ` [PATCH v9 0/9] " Teng Long
2022-01-06 4:31 ` [PATCH v9 1/9] ls-tree: remove commented-out code Teng Long
2022-01-06 4:31 ` [PATCH v9 2/9] ls-tree: add missing braces to "else" arms Teng Long
2022-01-06 4:31 ` [PATCH v9 3/9] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-01-06 4:31 ` [PATCH v9 4/9] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-01-06 4:31 ` [PATCH v9 5/9] ls-tree: optimize naming and handling of "return" in show_tree() Teng Long
2022-01-06 20:44 ` Junio C Hamano
2022-01-11 9:14 ` Teng Long
2022-01-06 4:31 ` [PATCH v9 6/9] ls-tree.c: support --object-only option for "git-ls-tree" Teng Long
2022-01-06 4:31 ` [PATCH v9 7/9] ls-tree.c: introduce struct "show_tree_data" Teng Long
2022-01-06 4:31 ` [PATCH v9 8/9] ls-tree.c: introduce "--format" option Teng Long
2022-01-10 19:41 ` Martin Ågren
2022-01-11 9:34 ` Teng Long
2022-01-06 4:31 ` [PATCH v9 9/9] cocci: allow padding with `strbuf_addf()` Teng Long
2022-01-07 13:03 ` Johannes Schindelin
2022-01-10 8:22 ` Teng Long
2022-01-10 12:49 ` Johannes Schindelin
2022-01-10 14:40 ` Teng Long
2022-01-10 17:47 ` Junio C Hamano
2022-01-10 18:02 ` Ævar Arnfjörð Bjarmason
2022-01-10 18:34 ` Junio C Hamano
2022-01-10 18:00 ` Ævar Arnfjörð Bjarmason
2022-01-11 10:37 ` Teng Long
2022-01-11 16:42 ` Taylor Blau
2022-01-11 19:06 ` René Scharfe
2022-01-11 20:11 ` Taylor Blau
2022-01-13 3:34 ` Teng Long
2022-01-11 20:39 ` Ævar Arnfjörð Bjarmason
2022-01-13 3:35 ` Teng Long
2022-01-13 3:28 ` Teng Long
2022-01-13 3:42 ` [PATCH v10 0/9] ls-tree: "--object-only" and "--format" opts Teng Long
2022-01-13 3:42 ` [PATCH v10 1/9] ls-tree: remove commented-out code Teng Long
2022-01-13 3:42 ` [PATCH v10 2/9] ls-tree: add missing braces to "else" arms Teng Long
2022-01-13 3:42 ` [PATCH v10 3/9] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-01-13 3:42 ` [PATCH v10 4/9] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-01-13 3:42 ` [PATCH v10 5/9] ls-tree: optimize naming and handling of "return" in show_tree() Teng Long
2022-01-13 6:49 ` Ævar Arnfjörð Bjarmason
2022-01-14 7:59 ` Teng Long
2022-01-14 12:00 ` Ævar Arnfjörð Bjarmason
2022-01-13 3:42 ` [PATCH v10 6/9] ls-tree.c: support --object-only option for "git-ls-tree" Teng Long
2022-01-13 6:59 ` Ævar Arnfjörð Bjarmason
2022-01-14 8:18 ` Teng Long
2022-01-14 11:47 ` Ævar Arnfjörð Bjarmason
2022-01-18 9:55 ` Teng Long
2022-02-04 12:58 ` Ævar Arnfjörð Bjarmason
2022-02-07 2:22 ` Teng Long
2022-01-13 3:42 ` [PATCH v10 7/9] ls-tree.c: introduce struct "show_tree_data" Teng Long
2022-01-13 7:03 ` Ævar Arnfjörð Bjarmason
2022-01-14 9:12 ` Teng Long
2022-01-13 3:42 ` [PATCH v10 8/9] cocci: allow padding with `strbuf_addf()` Teng Long
2022-01-13 3:42 ` [PATCH v10 9/9] ls-tree.c: introduce "--format" option Teng Long
2022-01-13 7:16 ` Ævar Arnfjörð Bjarmason
2022-01-18 12:59 ` Teng Long [this message]
2022-02-08 12:14 ` [PATCH v11 00/13] ls-tree: "--object-only" and "--format" opts Teng Long
2022-02-08 12:14 ` [PATCH v11 01/13] ls-tree: remove commented-out code Teng Long
2022-02-08 12:14 ` [PATCH v11 02/13] ls-tree: add missing braces to "else" arms Teng Long
2022-02-08 12:14 ` [PATCH v11 03/13] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-02-08 12:14 ` [PATCH v11 04/13] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-02-08 12:14 ` [PATCH v11 05/13] ls-tree: rename "retval" to "recurse" in "show_tree()" Teng Long
2022-02-08 12:14 ` [PATCH v11 06/13] ls-tree: simplify nesting if/else logic " Teng Long
2022-02-19 6:06 ` Ævar Arnfjörð Bjarmason
2022-02-08 12:14 ` [PATCH v11 07/13] ls-tree: fix "--name-only" and "--long" combined use bug Teng Long
2022-02-19 6:04 ` Ævar Arnfjörð Bjarmason
2022-02-08 12:14 ` [PATCH v11 08/13] ls-tree: slightly refactor `show_tree()` Teng Long
2022-02-19 5:56 ` Ævar Arnfjörð Bjarmason
[not found] ` <CADMgQSRYKB1ybxZWxQQ3uVM71fmdbzHqcK-WUPNKm2HMxw2C2g@mail.gmail.com>
2022-02-28 16:18 ` Ævar Arnfjörð Bjarmason
2022-02-08 12:14 ` [PATCH v11 09/13] ls-tree: introduce struct "show_tree_data" Teng Long
2022-02-08 12:14 ` [PATCH v11 10/13] cocci: allow padding with `strbuf_addf()` Teng Long
2022-02-08 12:14 ` [PATCH v11 11/13] ls-tree.c: introduce "--format" option Teng Long
2022-02-19 5:44 ` Ævar Arnfjörð Bjarmason
2022-02-08 12:14 ` [PATCH v11 12/13] ls-tree: introduce function "fast_path()" Teng Long
2022-02-19 5:32 ` Ævar Arnfjörð Bjarmason
2022-02-08 12:14 ` [PATCH v11 13/13] ls-tree.c: support --object-only option for "git-ls-tree" Teng Long
2022-02-19 5:24 ` Ævar Arnfjörð Bjarmason
2022-03-04 10:42 ` [PATCH v12 00/12] ls-tree: "--object-only" and "--format" opts Teng Long
2022-03-04 10:42 ` [PATCH v12 01/12] ls-tree: remove commented-out code Teng Long
2022-03-04 10:42 ` [PATCH v12 02/12] ls-tree: add missing braces to "else" arms Teng Long
2022-03-04 10:42 ` [PATCH v12 03/12] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-03-04 10:42 ` [PATCH v12 04/12] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-03-04 10:42 ` [PATCH v12 05/12] ls-tree: rename "retval" to "recurse" in "show_tree()" Teng Long
2022-03-04 10:42 ` [PATCH v12 06/12] ls-tree: simplify nesting if/else logic " Teng Long
2022-03-04 10:42 ` [PATCH v12 07/12] ls-tree: fix "--name-only" and "--long" combined use bug Teng Long
2022-03-04 10:42 ` [PATCH v12 08/12] ls-tree: slightly refactor `show_tree()` Teng Long
2022-03-04 10:42 ` [PATCH v12 09/12] ls-tree: introduce struct "show_tree_data" Teng Long
2022-03-04 10:42 ` [PATCH v12 10/12] cocci: allow padding with `strbuf_addf()` Teng Long
2022-03-04 10:42 ` [PATCH v12 11/12] ls-tree: introduce "--format" option Teng Long
2022-03-04 10:42 ` [PATCH v12 12/12] ls-tree: support --object-only option for "git-ls-tree" Teng Long
2022-03-10 13:56 ` [RFC/REVIEW 0/7] fixups/suggestions/musings for tl/ls-tree-oid-only Ævar Arnfjörð Bjarmason
2022-03-10 13:56 ` [RFC/REVIEW 1/7] ls-tree tests: add tests for --name-status Ævar Arnfjörð Bjarmason
2022-03-10 13:56 ` [RFC/REVIEW 2/7] ls-tree tests: exhaustively test fast & slow path for --format Ævar Arnfjörð Bjarmason
2022-03-10 13:56 ` [RFC/REVIEW 3/7] ls-tree: remove dead labels Ævar Arnfjörð Bjarmason
2022-03-10 13:57 ` [RFC/REVIEW 4/7] ls-tree: remove unused "MODE_UNSPECIFIED" Ævar Arnfjörð Bjarmason
2022-03-10 13:57 ` [RFC/REVIEW 5/7] ls-tree: detect and error on --name-only --name-status Ævar Arnfjörð Bjarmason
2022-03-10 13:57 ` [RFC/REVIEW 6/7] ls-tree: remove FIELD_*, just use MODE_* Ævar Arnfjörð Bjarmason
2022-03-10 13:57 ` [RFC/REVIEW 7/7] ls-tree: split up "fast path" callbacks Ævar Arnfjörð Bjarmason
2022-03-17 9:51 ` [RFC/REVIEW 0/7] fixups/suggestions/musings for tl/ls-tree-oid-only Teng Long
2022-03-17 10:04 ` Ævar Arnfjörð Bjarmason
2022-03-21 7:33 ` [PATCH v13 00/16] ls-tree: "--object-only" and "--format" opts Teng Long
2022-03-21 7:33 ` [PATCH v13 01/16] ls-tree: remove commented-out code Teng Long
2022-03-21 7:33 ` [PATCH v13 02/16] ls-tree: add missing braces to "else" arms Teng Long
2022-03-21 7:33 ` [PATCH v13 03/16] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-03-21 7:33 ` [PATCH v13 04/16] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-03-21 7:33 ` [PATCH v13 05/16] ls-tree: rename "retval" to "recurse" in "show_tree()" Teng Long
2022-03-21 7:33 ` [PATCH v13 06/16] ls-tree: simplify nesting if/else logic " Teng Long
2022-03-21 7:33 ` [PATCH v13 07/16] ls-tree: fix "--name-only" and "--long" combined use bug Teng Long
2022-03-21 7:33 ` [PATCH v13 08/16] ls-tree: slightly refactor `show_tree()` Teng Long
2022-03-21 7:33 ` [PATCH v13 09/16] ls-tree: introduce struct "show_tree_data" Teng Long
2022-03-21 7:33 ` [PATCH v13 10/16] cocci: allow padding with `strbuf_addf()` Teng Long
2022-03-21 7:33 ` [PATCH v13 11/16] ls-tree: introduce "--format" option Teng Long
2022-03-21 9:22 ` Ævar Arnfjörð Bjarmason
2022-03-21 7:33 ` [PATCH v13 12/16] ls-tree: support --object-only option for "git-ls-tree" Teng Long
2022-03-21 7:33 ` [PATCH v13 13/16] ls-tree tests: add tests for --name-status Teng Long
2022-03-21 9:21 ` Ævar Arnfjörð Bjarmason
2022-03-21 7:33 ` [PATCH v13 14/16] ls-tree: detect and error on --name-only --name-status Teng Long
2022-03-21 7:33 ` [PATCH v13 15/16] ls-tree: remove FIELD_*, just use MODE_* Teng Long
2022-03-21 9:15 ` Ævar Arnfjörð Bjarmason
2022-03-21 7:33 ` [PATCH v13 16/16] ls-tree: split up "fast path" callbacks Teng Long
2022-03-21 9:20 ` Ævar Arnfjörð Bjarmason
2022-03-23 9:58 ` Teng Long
2022-03-21 19:07 ` [PATCH v13 00/16] ls-tree: "--object-only" and "--format" opts Junio C Hamano
2022-03-23 9:13 ` [PATCH v14 00/15] " Teng Long
2022-03-23 9:13 ` [PATCH v14 01/15] ls-tree tests: add tests for --name-status Teng Long
2022-03-23 9:13 ` [PATCH v14 02/15] ls-tree: remove commented-out code Teng Long
2022-03-23 9:13 ` [PATCH v14 03/15] ls-tree: add missing braces to "else" arms Teng Long
2022-03-23 9:13 ` [PATCH v14 04/15] ls-tree: use "enum object_type", not {blob,tree,commit}_type Teng Long
2022-03-23 9:13 ` [PATCH v14 05/15] ls-tree: use "size_t", not "int" for "struct strbuf"'s "len" Teng Long
2022-03-23 9:13 ` [PATCH v14 06/15] ls-tree: rename "retval" to "recurse" in "show_tree()" Teng Long
2022-03-23 9:13 ` [PATCH v14 07/15] ls-tree: simplify nesting if/else logic " Teng Long
2022-03-23 9:13 ` [PATCH v14 08/15] ls-tree: fix "--name-only" and "--long" combined use bug Teng Long
2022-03-23 9:13 ` [PATCH v14 09/15] ls-tree: slightly refactor `show_tree()` Teng Long
2022-03-23 9:13 ` [PATCH v14 10/15] ls-tree: introduce struct "show_tree_data" Teng Long
2022-03-23 9:13 ` [PATCH v14 11/15] cocci: allow padding with `strbuf_addf()` Teng Long
2022-03-23 9:13 ` [PATCH v14 12/15] ls-tree: introduce "--format" option Teng Long
2022-03-23 9:13 ` [PATCH v14 13/15] ls-tree: support --object-only option for "git-ls-tree" Teng Long
2022-03-23 9:13 ` [PATCH v14 14/15] ls-tree: detect and error on --name-only --name-status Teng Long
2022-03-23 9:13 ` [PATCH v14 15/15] ls-tree: split up "fast path" callbacks Teng Long
2022-04-04 20:06 ` Josh Steadmon
2022-04-04 22:42 ` [RFC PATCH] ls-tree: `-l` should not imply recursive listing Josh Steadmon
2022-04-04 23:45 ` [PATCH v2] ls-tree: fix --long implying -r regression in 9c4d58ff2c3 Ævar Arnfjörð Bjarmason
2022-04-06 17:56 ` Junio C Hamano
2022-04-06 20:36 ` Ævar Arnfjörð Bjarmason
2022-04-06 21:51 ` Junio C Hamano
2022-04-07 7:14 ` Ævar Arnfjörð Bjarmason
2022-04-07 18:40 ` Junio C Hamano
2022-05-31 17:21 ` [PATCH] ls-tree: test for the " Ævar Arnfjörð Bjarmason
2022-06-02 15:18 ` Johannes Schindelin
2022-06-02 17:48 ` Junio C Hamano
2022-06-03 9:54 ` js/ci-github-workflow-markup output regression (was: [PATCH] ls-tree: test for the regression in 9c4d58ff2c3) Ævar Arnfjörð Bjarmason
2022-06-03 19:27 ` js/ci-github-workflow-markup output regression Junio C Hamano
2022-06-03 23:13 ` Ævar Arnfjörð Bjarmason
2022-06-07 18:25 ` Junio C Hamano
2022-06-07 21:40 ` Ævar Arnfjörð Bjarmason
2022-06-08 8:04 ` Johannes Schindelin
2022-06-09 19:43 ` Ævar Arnfjörð Bjarmason
2022-06-03 10:23 ` [PATCH v2] ls-tree: test for the regression in 9c4d58ff2c3 Ævar Arnfjörð Bjarmason
2022-06-08 21:55 ` Johannes Schindelin
2022-04-07 9:29 ` [PATCH v2] ls-tree: fix --long implying -r " Teng Long
2022-04-06 15:41 ` [RFC PATCH] ls-tree: `-l` should not imply recursive listing Junio C Hamano
2022-03-23 19:54 ` [PATCH v14 00/15] ls-tree: "--object-only" and "--format" opts Junio C Hamano
2022-03-24 3:00 ` Teng Long
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=20220118125939.99956-1-dyroneteng@gmail.com \
--to=dyroneteng@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=congdanhqx@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johncai86@gmail.com \
--cc=martin.agren@gmail.com \
--cc=peff@peff.net \
--cc=tenglong.tl@alibaba-inc.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).