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