From: Kyle Lippincott <spectral@google.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Dirk Gouders <dirk@gouders.net>,
git@vger.kernel.org, Emily Shaffer <emilyshaffer@google.com>
Subject: Re: [PATCH v3 4/5] MyFirstObjectWalk: fix description for counting omitted objects
Date: Mon, 25 Mar 2024 13:59:59 -0700 [thread overview]
Message-ID: <CAO_smVhTQS2+QH0--ZtiCKyrFWx9fak0-0mbN-xY=_Ayx8JW=A@mail.gmail.com> (raw)
In-Reply-To: <xmqq34semden.fsf@gitster.g>
On Mon, Mar 25, 2024 at 10:25 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> Dirk Gouders <dirk@gouders.net> writes:
>
> > Before the changes to count omitted objects, the function
> > traverse_commit_list() was used and its call cannot be changed to pass
> > a pointer to an oidset to record omitted objects.
> >
> > Fix the text to clarify that we now use another traversal function to
> > be able to pass the pointer to the introduced oidset.
> >
> > Helped-by: Kyle Lippincott <spectral@google.com>
> > Signed-off-by: Dirk Gouders <dirk@gouders.net>
> > ---
> > Documentation/MyFirstObjectWalk.txt | 14 ++++++++------
> > 1 file changed, 8 insertions(+), 6 deletions(-)
> >
> > diff --git a/Documentation/MyFirstObjectWalk.txt b/Documentation/MyFirstObjectWalk.txt
> > index a06c712e46..811175837c 100644
> > --- a/Documentation/MyFirstObjectWalk.txt
> > +++ b/Documentation/MyFirstObjectWalk.txt
> > @@ -754,10 +754,11 @@ points to the same tree object as its grandparent.)
> > === Counting Omitted Objects
> >
> > We also have the capability to enumerate all objects which were omitted by a
> > -filter, like with `git log --filter=<spec> --filter-print-omitted`. Asking
> > -`traverse_commit_list_filtered()` to populate the `omitted` list means that our
> > -object walk does not perform any better than an unfiltered object walk; all
> > -reachable objects are walked in order to populate the list.
> > +filter, like with `git log --filter=<spec> --filter-print-omitted`. To do this,
> > +change `traverse_commit_list()` to `traverse_commit_list_filtered()`, which is
> > +able to populate an `omitted` list. Note that this means that our object walk
>
> "this means that" could be rephrased in a way a bit more helpful and
> to readers with clarity, perhaps:
>
> Note that our object walk will not perform any better than
> an unfiltered walk with this function, because all reachable
> objects need to be walked in order to ...
This proposed text has a small ambiguity, it can be parsed as:
- Note that (with this function) our object walk will not perform any
better than an unfiltered walk [implying that the function change
itself is the cause of the performance concern]
or
- Note that (our object walk) will not perform any better than an
(unfiltered walk with this function) [implying that
`traverse_commit_list_filtered` has a filtered and an unfiltered mode
of operation [which it does...]]
The issue is that the name `traverse_commit_list_filtered` is poorly
named: `traverse_commit_list` and `traverse_commit_list_filtered` are
the exact same function (both support filtering!), it's just that
`traverse_commit_list_filtered` is able to announce what was filtered.
Perhaps:
Note that requesting the list of filtered objects may have
performance implications; all reachable objects will be visited in
order to populate the list of filtered objects.
I'm intentionally being ambiguous about it _definitely_ having
performance implications, because it's context dependent. It looks
like only the `filter_trees_depth` function actually changes what it
visits depending on whether the omits list was specified or not.
>
> > +will not perform any better than an unfiltered object walk; all reachable
> > +objects are walked in order to populate the list.
>
> Other than that, looking very good.
>
> Thanks, both.
>
> > First, add the `struct oidset` and related items we will use to iterate it:
> >
> > @@ -778,8 +779,9 @@ static void walken_object_walk(
> > ...
> > ----
> >
> > -Modify the call to `traverse_commit_list_filtered()` to include your `omitted`
> > -object:
> > +Replace the call to `traverse_commit_list()` with
> > +`traverse_commit_list_filtered()` and pass a pointer to the `omitted` oidset
> > +defined and initialized above:
> >
> > ----
> > ...
next prev parent reply other threads:[~2024-03-25 21:00 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-11 21:36 [PATCH 0/5] Fixes for Documentation/MyFirstObjectWalk.txt Dirk Gouders
2024-03-11 10:11 ` [PATCH 1/5] MyFirstObjectWalk: use additional arg in config_fn_t Dirk Gouders
2024-03-12 0:18 ` Junio C Hamano
2024-03-11 10:26 ` [PATCH 2/5] MyFirstObjectWalk: fix misspelled "builtins/" Dirk Gouders
2024-03-11 12:47 ` [PATCH 3/5] MyFirstObjectWalk: fix filtered object walk Dirk Gouders
2024-03-11 13:29 ` [PATCH 4/5] MyFirstObjectWalk: fix description for counting omitted objects Dirk Gouders
2024-03-11 21:00 ` [PATCH 5/5] MyFirstObjectWalk: add stderr to pipe processing Dirk Gouders
2024-03-12 0:13 ` Junio C Hamano
2024-03-12 14:27 ` Dirk Gouders
2024-03-12 19:29 ` Junio C Hamano
2024-03-12 0:15 ` [PATCH 0/5] Fixes for Documentation/MyFirstObjectWalk.txt Junio C Hamano
2024-03-19 11:23 ` [PATCH v2 " Dirk Gouders
2024-03-19 11:23 ` [PATCH v2 1/5] MyFirstObjectWalk: use additional arg in config_fn_t Dirk Gouders
2024-03-23 19:28 ` Kyle Lippincott
2024-03-19 11:23 ` [PATCH v2 2/5] MyFirstObjectWalk: fix misspelled "builtins/" Dirk Gouders
2024-03-19 11:23 ` [PATCH v2 3/5] MyFirstObjectWalk: fix filtered object walk Dirk Gouders
2024-03-19 11:23 ` [PATCH v2 4/5] MyFirstObjectWalk: fix description for counting omitted objects Dirk Gouders
2024-03-23 21:59 ` Kyle Lippincott
2024-03-23 22:46 ` Dirk Gouders
2024-03-19 11:23 ` [PATCH v2 5/5] MyFirstObjectWalk: add stderr to pipe processing Dirk Gouders
2024-03-23 19:48 ` Kyle Lippincott
2024-03-23 20:16 ` Dirk Gouders
2024-03-23 22:00 ` [PATCH v2 0/5] Fixes for Documentation/MyFirstObjectWalk.txt Kyle Lippincott
2024-03-23 23:06 ` Dirk Gouders
2024-03-24 2:20 ` Junio C Hamano
2024-03-25 12:33 ` [PATCH v3 " Dirk Gouders
2024-03-25 12:33 ` [PATCH v3 1/5] MyFirstObjectWalk: use additional arg in config_fn_t Dirk Gouders
2024-03-25 17:16 ` Junio C Hamano
2024-03-25 19:50 ` Dirk Gouders
2024-03-25 12:33 ` [PATCH v3 2/5] MyFirstObjectWalk: fix misspelled "builtins/" Dirk Gouders
2024-03-25 12:33 ` [PATCH v3 3/5] MyFirstObjectWalk: fix filtered object walk Dirk Gouders
2024-03-25 12:33 ` [PATCH v3 4/5] MyFirstObjectWalk: fix description for counting omitted objects Dirk Gouders
2024-03-25 17:25 ` Junio C Hamano
2024-03-25 20:07 ` Dirk Gouders
2024-03-25 21:25 ` Junio C Hamano
2024-03-25 20:59 ` Kyle Lippincott [this message]
2024-03-25 12:33 ` [PATCH v3 5/5] MyFirstObjectWalk: add stderr to pipe processing Dirk Gouders
2024-03-25 17:05 ` [PATCH v3 0/5] Fixes for Documentation/MyFirstObjectWalk.txt Kyle Lippincott
2024-03-25 20:07 ` Dirk Gouders
2024-03-25 17:50 ` Junio C Hamano
2024-03-25 18:01 ` Kyle Lippincott
2024-03-25 20:22 ` Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 " Dirk Gouders
2024-03-27 1:04 ` Kyle Lippincott
2024-03-27 6:25 ` Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 " Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 1/5] MyFirstObjectWalk: use additional arg in config_fn_t Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 2/5] MyFirstObjectWalk: fix misspelled "builtins/" Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 3/5] MyFirstObjectWalk: fix filtered object walk Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 4/5] MyFirstObjectWalk: fix description for counting omitted objects Dirk Gouders
2024-03-27 11:22 ` [PATCH v5 5/5] MyFirstObjectWalk: add stderr to pipe processing Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 1/5] MyFirstObjectWalk: use additional arg in config_fn_t Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 2/5] MyFirstObjectWalk: fix misspelled "builtins/" Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 3/5] MyFirstObjectWalk: fix filtered object walk Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 4/5] MyFirstObjectWalk: fix description for counting omitted objects Dirk Gouders
2024-03-26 17:00 ` Junio C Hamano
2024-03-26 20:09 ` Dirk Gouders
2024-03-26 20:24 ` Junio C Hamano
2024-03-27 6:30 ` Dirk Gouders
2024-03-26 13:08 ` [PATCH v4 5/5] MyFirstObjectWalk: add stderr to pipe processing Dirk Gouders
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAO_smVhTQS2+QH0--ZtiCKyrFWx9fak0-0mbN-xY=_Ayx8JW=A@mail.gmail.com' \
--to=spectral@google.com \
--cc=dirk@gouders.net \
--cc=emilyshaffer@google.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).