1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-28 04:49:43 +01:00

MyFirstObjectWalk: fix description for counting omitted objects

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Dirk Gouders 2024-03-27 12:22:15 +01:00 committed by Junio C Hamano
parent af3888890e
commit 7250cdb695

View file

@ -754,10 +754,12 @@ 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. Asking for this list of filtered objects
may cause performance degradations, however, because in this case, 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:
@ -778,8 +780,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:
----
...