This series of patch makes fetch to allow adding a filter after initial clone, useful for existing shallow clones as they allow users to see earlier change histories without downloading all git objects in a regular --unshallow fetch. This version of patchset is mostly identical to the v5 draft but splitted into smaller individual patches. Please note that the last patch is an incompatible change that would make extensions stop working for version 0 repositories. Currently, unknown extensions are silently ignored for version 0, which means the user may see undesirable result when upgraded to a new Git version. Xin Li (4): repository: add a helper function to perform repository format upgrade fetch: allow adding a filter after initial clone sparse-checkout: upgrade repository to version 1 when enabling extension check_repository_format_gently(): refuse extensions for old repositories builtin/fetch.c | 3 --- builtin/sparse-checkout.c | 2 ++ cache.h | 1 + list-objects-filter-options.c | 3 ++- repository.h | 6 +++++ setup.c | 41 +++++++++++++++++++++++++++++--- t/t0410-partial-clone.sh | 23 ++++++++++++++++++ t/t1090-sparse-checkout-scope.sh | 1 - t/t2404-worktree-config.sh | 4 +++- t/t5500-fetch-pack.sh | 1 - t/t5702-protocol-v2.sh | 1 - 11 files changed, 75 insertions(+), 11 deletions(-) -- 2.27.0.278.ge193c7cf3a9-goog