From: Jeff Hostetler Date: Wed, 25 Oct 2017 19:29:45 GMT Subject: Re: [PATCH 08/13] list-objects: add traverse_commit_list_filtered method Message-ID: <39e85992-6e3b-2059-17a1-784c92072944@jeffhostetler.com> In-Reply-To: On 10/25/2017 12:24 AM, Jonathan Tan wrote: > On Tue, Oct 24, 2017 at 11:53 AM, Jeff Hostetler 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