Applied the following changes suggested by git@xxxxxxxxxxxxxxxxx: - Change the filter name from tree:none to tree:0 to make room for future improvements which allow filtering based on depth. - Made a separate filter logic function and filter data struct for tree:0 rather than share it with blob:none. I would usually prefer making the code less redundant whenever possible, but since there are plans to extend this in the future, it makes more sense to have this separate. Matthew DeVore (5): list-objects: store common func args in struct list-objects: refactor to process_tree_contents rev-list: handle missing tree objects properly revision: mark non-user-given objects instead list-objects-filter: implement filter tree:0 Documentation/rev-list-options.txt | 3 + builtin/rev-list.c | 10 +- list-objects-filter-options.c | 4 + list-objects-filter-options.h | 1 + list-objects-filter.c | 50 ++++++ list-objects.c | 236 +++++++++++++------------ revision.c | 1 - revision.h | 10 +- t/t5317-pack-objects-filter-objects.sh | 40 +++++ t/t5616-partial-clone.sh | 27 +++ t/t6112-rev-list-filters-objects.sh | 13 ++ 11 files changed, 274 insertions(+), 121 deletions(-) -- 2.18.0.597.ga71716f1ad-goog