The 3rd iteration for this series. I tried to credit Kyle's suggestions for 4 and 5 with Helped-by tags and hope it was adequate to do so. Actually, at least #4 was a lot more than a Helped-by, I would say... --- 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 | 36 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 16 deletions(-) Range-diff against v2: -: ---------- > 1: 0eeb4b78ac MyFirstObjectWalk: use additional arg in config_fn_t -: ---------- > 2: 3122ae2472 MyFirstObjectWalk: fix misspelled "builtins/" -: ---------- > 3: f21348ab80 MyFirstObjectWalk: fix filtered object walk 1: 4219237868 ! 4: cfa4b9ce50 MyFirstObjectWalk: fix description for counting omitted objects @@ Commit message 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@xxxxxxxxxx> Signed-off-by: Dirk Gouders <dirk@xxxxxxxxxxx> ## Documentation/MyFirstObjectWalk.txt ## @@ Documentation/MyFirstObjectWalk.txt: points to the same tree object as its grand -`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`. We -+can ask `traverse_commit_list_filtered()` to populate the `omitted` -+list which 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 ++will not perform any better than an unfiltered object walk; all reachable ++objects are walked in order to populate the list. First, add the `struct oidset` and related items we will use to iterate it: @@ Documentation/MyFirstObjectWalk.txt: static void walken_object_walk( -Modify the call to `traverse_commit_list_filtered()` to include your `omitted` -object: -+You need to replace the call to `traverse_commit_list()` to -+`traverse_commit_list_filtered()` to be able to pass a pointer to the -+oidset defined and initialized above: ++Replace the call to `traverse_commit_list()` with ++`traverse_commit_list_filtered()` and pass a pointer to the `omitted` oidset ++defined and initialized above: ---- ... 2: 9b0f0832b7 ! 5: c571abb49d MyFirstObjectWalk: add stderr to pipe processing @@ Commit message Fix this by redirecting stderr to stdout prior to the pipe operator to additionally connect stderr to stdin of the latter command. + Further, while reviewing the above fix, Kyle Lippincott noticed + a second issue with the second of the examples: a missing slash in the + executable path "./bin-wrappers git". + + Add the missing slash. + + Helped-by: Kyle Lippincott <spectral@xxxxxxxxxx> Signed-off-by: Dirk Gouders <dirk@xxxxxxxxxxx> ## Documentation/MyFirstObjectWalk.txt ## @@ Documentation/MyFirstObjectWalk.txt: of the first handful: ---- $ make -$ GIT_TRACE=1 ./bin-wrappers git walken | tail -n 10 -+$ GIT_TRACE=1 ./bin-wrappers git walken 2>&1 | tail -n 10 ++$ GIT_TRACE=1 ./bin-wrappers/git walken 2>&1 | tail -n 10 ---- The last commit object given should have the same OID as the one we saw at the -- 2.43.0