Re: [PATCH 08/13] list-objects: add traverse_commit_list_filtered method
- From
- Jeff Hostetler <git@jeffhostetler.com>
- Date
- Oct 25, 2017, 19:29 UTC
- Message-ID
- <39e85992-6e3b-2059-17a1-784c92072944@jeffhostetler.com>
- In-Reply-To
- <CAGf8dgLU_70vq8JNpr-cihgk9SbC_7GYcaEF6c9NgmJRXPAcmw@mail.gmail.com>
On 10/25/2017 12:24 AM, Jonathan Tan wrote:
Show 22 quoted lines
> On Tue, Oct 24, 2017 at 11:53 AM, Jeff Hostetler <git@jeffhostetler.com> wrote: >> +void traverse_commit_list_filtered( >> + struct list_objects_filter_options *filter_options, >> + struct rev_info *revs, >> + show_commit_fn show_commit, >> + show_object_fn show_object, >> + list_objects_filter_map_foreach_cb print_omitted_object, >> + void *show_data); > > So the function call chain, if we wanted a filtered traversal, is: > traverse_commit_list_filtered -> traverse_commit_list__sparse_path > (and friends, and each algorithm is in its own file) -> > traverse_commit_list_worker > > This makes the implementation of each algorithm more easily understood > (since they are all in their own files), but also increases the number > of global functions and code files. I personally would combine the > traverse_commit_list__* functions into one file > (list-objects-filtered.c), make them static, and also put > traverse_commit_list_filtered in there, but I understand that other > people in the Git project may differ on this. >
I'll do a round of refactoring to include your suggestion of a default null filter. Then with that see what collapsing this looks like.
Thanks, Jeff