Please take a look. I believe I have applied or responded to all suggestions since the last iteration. Matthew DeVore (6): list-objects: store common func args in struct list-objects: refactor to process_tree_contents list-objects: always parse trees gently 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 | 5 + builtin/rev-list.c | 11 +- list-objects-filter-options.c | 4 + list-objects-filter-options.h | 1 + list-objects-filter.c | 50 ++++++ list-objects.c | 232 +++++++++++++------------ revision.c | 1 - revision.h | 25 ++- t/t0410-partial-clone.sh | 45 +++++ t/t5317-pack-objects-filter-objects.sh | 41 +++++ t/t5616-partial-clone.sh | 38 ++++ t/t6112-rev-list-filters-objects.sh | 29 ++++ 12 files changed, 364 insertions(+), 118 deletions(-) -- 2.18.0.865.gffc8e1a3cd6-goog