Changes since v5: * Support tag objects exclusion (configurable but will repeat download object data in previous patch) * Tests and docs modification for tag exclusion feature * Abstraction of some reusable methods Teng Long (14): pack-objects.c: introduce new method `match_packfile_uri_exclusions` Add new parameter "carry_data" for "show_object" function packfile-uri: support for excluding commit objects packfile-uri: support for excluding tree objects packfile-uri.txt: support for excluding commits and trees t5702: replace with "test_when_finished" for cleanup t5702: support for excluding commit objects Add new parameter "carry_data" for "show_commit function commit.h: add wrapped tags in commit struct object.h: add referred tags in `referred_objects` struct packfile-uri: support for excluding tag objects packfile-uri.txt: support for excluding tag objects t5702: add tag exclusion test case pack-objects.c: introduce `want_exclude_object` function Documentation/technical/packfile-uri.txt | 38 ++- builtin/describe.c | 8 +- builtin/pack-objects.c | 128 ++++++--- builtin/rev-list.c | 6 +- bundle.c | 4 +- commit.h | 5 + list-objects.c | 50 ++-- list-objects.h | 4 +- object.c | 20 +- object.h | 16 +- pack-bitmap.c | 14 +- reachable.c | 8 +- revision.c | 42 ++- revision.h | 3 + shallow.c | 4 +- t/t5702-protocol-v2.sh | 330 ++++++++++++++++++++--- upload-pack.c | 7 + 17 files changed, 542 insertions(+), 145 deletions(-) Range-diff against v4: -: ---------- > 1: 73a5b4ccc1 pack-objects.c: introduce new method `match_packfile_uri_exclusions` -: ---------- > 2: bc8fea97e3 Add new parameter "carry_data" for "show_object" function -: ---------- > 3: f71b310842 packfile-uri: support for excluding commit objects -: ---------- > 4: bbb0413cc4 packfile-uri: support for excluding tree objects -: ---------- > 5: 8e5bf4010c packfile-uri.txt: support for excluding commits and trees -: ---------- > 6: f3b1cba7e1 t5702: replace with "test_when_finished" for cleanup -: ---------- > 7: 3b5f9732b8 t5702: support for excluding commit objects 1: 19f7670384 = 8: 19f7670384 Add new parameter "carry_data" for "show_commit function 2: 011e5eaea3 = 9: 011e5eaea3 commit.h: add wrapped tags in commit struct 3: 824844499f = 10: 824844499f object.h: add referred tags in `referred_objects` struct 4: 43aa811b65 = 11: 43aa811b65 packfile-uri: support for excluding tag objects 5: c83db0055c = 12: c83db0055c packfile-uri.txt: support for excluding tag objects 6: 29a52b7a0d = 13: 29a52b7a0d t5702: add tag exclusion test case 7: 1a7c4c5894 = 14: 1a7c4c5894 pack-objects.c: introduce `want_exclude_object` function -- 2.31.1.456.gec51e24953