From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> This part 3 of a 3 part sequence partial clone. It assumes that part 1 and part 2 are in place. This patch series is labeled as V4 to keep it in sync with the corresponding V4 versions of parts 1 and 2. There was not a V3 version of this patch series. Jonathan and I independently started on this task. This is another pass at merging those efforts. So there are several places that may need refactoring and cleanup, but fewer than in the previous submission. In particular, the test cases should be squashed and new tests added. And I think we need more end-to-end tests. I'll work on those next. Jeff Hostetler (5): upload-pack: add object filtering for partial clone clone, fetch-pack, index-pack, transport: partial clone fetch: add object filtering for partial fetch remote-curl: add object filtering for partial clone partial-clone: define partial clone settings in config Jonathan Tan (10): fetch: refactor calculation of remote list pack-objects: test support for blob filtering fetch-pack: test support excluding large blobs fetch-pack: test support excluding large blobs fetch: add from_promisor and exclude-promisor-objects parameters t5500: add fetch-pack tests for partial clone t5601: test for partial clone t5500: more tests for partial clone and fetch unpack-trees: batch fetching of missing blobs fetch-pack: restore save_commit_buffer after use Documentation/config.txt | 4 + Documentation/gitremote-helpers.txt | 4 + Documentation/technical/pack-protocol.txt | 8 ++ Documentation/technical/protocol-capabilities.txt | 8 ++ builtin/clone.c | 22 ++++- builtin/fetch-pack.c | 4 + builtin/fetch.c | 93 +++++++++++++++-- cache.h | 1 + config.c | 5 + connected.c | 2 + environment.c | 1 + fetch-object.c | 27 ++++- fetch-object.h | 5 + fetch-pack.c | 17 ++++ fetch-pack.h | 2 + list-objects-filter-options.c | 110 +++++++++++++++++++-- list-objects-filter-options.h | 12 +++ remote-curl.c | 11 +++ t/t5300-pack-object.sh | 26 +++++ t/t5500-fetch-pack.sh | 115 ++++++++++++++++++++++ t/t5601-clone.sh | 101 +++++++++++++++++++ t/test-lib-functions.sh | 12 +++ transport-helper.c | 5 + transport.c | 4 + transport.h | 5 + unpack-trees.c | 22 +++++ upload-pack.c | 22 ++++- 27 files changed, 628 insertions(+), 20 deletions(-) -- 2.9.3