Changes applied, as suggested by jonathantanmy@xxxxxxxxxx: - Re-ordered patches so 3-5 actually come first - Sadly, as a result of the above, many of the tests in the "treat missing trees like missing blobs" patch had to be moved to the filter implementation patch, since it doesn't seem possible to create promisor objects that are really recognized as promisor objects in tests (unless you actually do a partial clone). Overall, I thought this ordering was more elegant, so I kept it. - Reworded NOT_USER_GIVEN commit message as suggested - Fixed style error list-objects.c (var dec and code mixed) - Added missing /* fallthrough */ and explanation why - Removed the show_missing_trees flag - now we won't show any error if the only problem is the object is missing and it's a promisor object. - Renamed only:commits to tree:none and updated commit message accordingly - Added /* blobs are always omitted */ comment in list-objects-filter.c - Fixed up tests in t5317-pack-objects-filter-objects.sh to not use unnecessary sorts, and to do more commands on lines of their own rather than in pipes 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:none Documentation/rev-list-options.txt | 2 + builtin/rev-list.c | 10 +- list-objects-filter-options.c | 4 + list-objects-filter-options.h | 1 + list-objects-filter.c | 49 +++-- 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, 259 insertions(+), 134 deletions(-) -- 2.18.0.597.ga71716f1ad-goog