From: Kyle Lippincott <spectral@google.com>
To: Dirk Gouders <dirk@gouders.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Emily Shaffer <emilyshaffer@google.com>
Subject: Re: [PATCH v4 0/5] Fixes for Documentation/MyFirstObjectWalk.txt
Date: Tue, 26 Mar 2024 18:04:39 -0700 [thread overview]
Message-ID: <ezbbu7ibxxrzogb4w46qvqgtwowtaf7e5o5y5dcb53gq7ko33c@g6eror27glzn> (raw)
In-Reply-To: <20240326130902.7111-1-dirk@gouders.net>
On Tue, Mar 26, 2024 at 02:08:35PM +0100, Dirk Gouders wrote:
> The 4th round of this series.
>
> Chances are that I just waste your time with my attemt [4/5].
> My appologies in advance, should this be the case.
>
> Recently, there was a discussion [1] on the groff mailing list and I
> guess I couldn't resist to try to practice what I read in the linked
> resources ;-)
>
> [1] https://lists.gnu.org/archive/html/groff/2024-03/msg00014.html
>
> Could be that the remaining controversal part of [4/5] should just be
> left untouched, because it is consuming so much time -- I summarized
> all those versions, so that all incarnations can be compared in one
> view:
>
> * Original:
>
> 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.
>
> * v3:
>
> Note that this means that our object walk will not perform any better
> than an unfiltered object walk; all reachable objects are walked in
> order to populate the list.
>
> * Junio's suggestion (with minor rearrangement):
>
> Note that our object walk with this function will not perform any
> better than the previous unfiltered walk, because all reachable
> objects need to be walked in order to populate the list of filtered
> objects.
>
> * Kyle's suggestion:
>
> 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.
>
> * My new attempt (v4):
>
> This list of filtered objects may have performance implications,
> however, because despite filtering objects, the possibly much larger
> set of all reachable objects must be processed in order to populate
> that list.
I agree with the issues Junio raised on this phrasing, and trust in Junio's
judgement to get to a clear phrasing :) I'll be unresponsive to email for at
least the next two weeks, so please don't block awaiting my response on any
future rerolls.
>
> --
> Changes in v4:
> * Used the proper `git show` for references in [1/5] and [3/5]
> * Another attempt to write clear speach in [4/5]
>
> Changes in v3:
> * Reword the description in [4/5]
> * Add a missing slash in [5/5]
>
> Changes in v2:
> * Added Emily to Cc in the hope for a review
> * Remove superfluous tags from [1/5] and [3/5]
> * Replace bashism `|&` by `2>&1 |` in [5/5]
> --
> Dirk Gouders (5):
> MyFirstObjectWalk: use additional arg in config_fn_t
> MyFirstObjectWalk: fix misspelled "builtins/"
> MyFirstObjectWalk: fix filtered object walk
> MyFirstObjectWalk: fix description for counting omitted objects
> MyFirstObjectWalk: add stderr to pipe processing
>
> Documentation/MyFirstObjectWalk.txt | 37 ++++++++++++++++-------------
> 1 file changed, 21 insertions(+), 16 deletions(-)
>
> Range-diff against v3:
> 1: 0eeb4b78ac ! 1: 102cbc54c4 MyFirstObjectWalk: use additional arg in config_fn_t
> @@ Metadata
> ## Commit message ##
> MyFirstObjectWalk: use additional arg in config_fn_t
>
> - Commit a4e7e317 (config: add ctx arg to config_fn_t) added a fourth
> - argument to config_fn_t but did not change relevant function calls
> - in Documentation/MyFirstObjectWalk.txt.
> + Commit a4e7e317f8 (config: add ctx arg to config_fn_t, 2023-06-28)
> + added a fourth argument to config_fn_t but did not change relevant
> + function calls in Documentation/MyFirstObjectWalk.txt.
>
> Fix those calls and the example git_walken_config() to use
> that additional argument.
> 2: 3122ae2472 = 2: 5fb7953f31 MyFirstObjectWalk: fix misspelled "builtins/"
> 3: f21348ab80 ! 3: b88518df0b MyFirstObjectWalk: fix filtered object walk
> @@ Metadata
> ## Commit message ##
> MyFirstObjectWalk: fix filtered object walk
>
> - Commit f0d2f849 (MyFirstObjectWalk: update recommended usage)
> - changed a call of parse_list_objects_filter() in a way that
> - probably never worked: parse_list_objects_filter() always needed a
> - pointer as its first argument.
> + Commit f0d2f84919 (MyFirstObjectWalk: update recommended usage,
> + 2022-03-09) changed a call of parse_list_objects_filter() in a way
> + that probably never worked: parse_list_objects_filter() always needed
> + a pointer as its first argument.
>
> Fix this by removing the CALLOC_ARRAY and passing the address of
> rev->filter to parse_list_objects_filter() in accordance to
> 4: cfa4b9ce50 ! 4: 11510630af MyFirstObjectWalk: fix description for counting omitted objects
> @@ Documentation/MyFirstObjectWalk.txt: points to the same tree object as its grand
> -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
> -+will not perform any better than an unfiltered object walk; all reachable
> -+objects are walked in order to populate the list.
> ++able to populate an `omitted` list. This list of filtered objects may have
> ++performance implications, however, because despite filtering objects, the possibly
> ++much larger set of all reachable objects must be processed in order to
> ++populate that list.
>
> First, add the `struct oidset` and related items we will use to iterate it:
>
> 5: c571abb49d = 5: 8920313ee2 MyFirstObjectWalk: add stderr to pipe processing
> --
> 2.43.0
>
next prev parent reply other threads:[~2024-03-27 1:05 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
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 [this message]
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=ezbbu7ibxxrzogb4w46qvqgtwowtaf7e5o5y5dcb53gq7ko33c@g6eror27glzn \
--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).