This is the last part of the parallel checkout series :) I have a couple other small optimization and tuning ideas for later but, with this part, the main functionality should be now complete. This is based on mt/parallel-checkout-part-2. The first three patches add parallel checkout support for three codepaths that could not use the parallel mode yet: - git checkout-index - git checkout --patch - git checkout <pathspec> All these three call `checkout_entry()` directly instead of `unpack_trees()`, so we need to enable parallel checkout on them before they call `checkout_entry()`. The four remaining patches add tests for the parallel checkout framework. Matheus Tavares (7): make_transient_cache_entry(): optionally alloc from mem_pool builtin/checkout.c: complete parallel checkout support checkout-index: add parallel checkout support parallel-checkout: add tests for basic operations parallel-checkout: add tests related to path collisions parallel-checkout: add tests related to .gitattributes ci: run test round with parallel-checkout enabled builtin/checkout--worker.c | 2 +- builtin/checkout-index.c | 24 +-- builtin/checkout.c | 20 ++- builtin/difftool.c | 2 +- cache.h | 11 +- ci/run-build-and-tests.sh | 1 + parallel-checkout.c | 18 +++ read-cache.c | 12 +- t/README | 4 + t/lib-encoding.sh | 25 +++ t/lib-parallel-checkout.sh | 40 +++++ t/t0028-working-tree-encoding.sh | 25 +-- t/t2080-parallel-checkout-basics.sh | 150 ++++++++++++++++++ t/t2081-parallel-checkout-collisions.sh | 162 ++++++++++++++++++++ t/t2082-parallel-checkout-attributes.sh | 194 ++++++++++++++++++++++++ unpack-trees.c | 2 +- 16 files changed, 643 insertions(+), 49 deletions(-) create mode 100644 t/lib-encoding.sh create mode 100644 t/lib-parallel-checkout.sh create mode 100755 t/t2080-parallel-checkout-basics.sh create mode 100755 t/t2081-parallel-checkout-collisions.sh create mode 100755 t/t2082-parallel-checkout-attributes.sh -- 2.30.1