Subject: [RFC PATCH 0/5] filter: support for excluding all trees and blobs

From: Matthew DeVore <[email-masked]>
Date: Thu, 9 Aug 2018 15:44:59 -0700

This patch series does two things:

  a. (patches 1-2) introduces "--filter=only:commits" which filters trees and blobs
  b. (patches 3-5) better support for promisor trees in the rev-list command

The intention is to enable initial partial clones to be very tiny by only
including commits. Patches 3-5 are necessary because, even though it has already
been possible to have partial clones with trees missing (there are tests for it),
there have not been any filters which support this yet, so it seemed necessary
to make rev-list handle this case better.

Thank you,

Matthew DeVore (5):
  revision: invert meaning of the USER_GIVEN flag
  list-objects-filter: implement filter only:commits
  list-objects: store common func args in struct
  list-objects: refactor to process_tree_contents
  rev-list: handle missing tree objects properly

 Documentation/rev-list-options.txt     |   2 +
 builtin/rev-list.c                     |  12 +-
 list-objects-filter-options.c          |   4 +
 list-objects-filter-options.h          |   1 +
 list-objects-filter.c                  |  43 +++--
 list-objects.c                         | 226 +++++++++++++------------
 revision.c                             |   1 -
 revision.h                             |  11 +-
 t/t5317-pack-objects-filter-objects.sh |  30 ++++
 t/t5616-partial-clone.sh               |  27 +++
 t/t6112-rev-list-filters-objects.sh    |  13 ++
 11 files changed, 242 insertions(+), 128 deletions(-)

-- 
2.18.0.597.ga71716f1ad-goog