Merge branch 'js/partial-clone-connectivity-check'

During an initial "git clone --depth=..." partial clone, it is
pointless to spend cycles for a large portion of the connectivity
check that enumerates and skips promisor objects (which by
definition is all objects fetched from the other side).  This has
been optimized out.

* js/partial-clone-connectivity-check:
  t/perf: add perf script for partial clones
  clone: do faster object check for partial clones
This commit is contained in:
Junio C Hamano
2019-05-13 23:50:31 +09:00
4 changed files with 55 additions and 2 deletions

26
t/perf/p5600-partial-clone.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
test_description='performance of partial clones'
. ./perf-lib.sh
test_perf_default_repo
test_expect_success 'enable server-side config' '
git config uploadpack.allowFilter true &&
git config uploadpack.allowAnySHA1InWant true
'
test_perf 'clone without blobs' '
rm -rf bare.git &&
git clone --no-local --bare --filter=blob:none . bare.git
'
test_perf 'checkout of result' '
rm -rf worktree &&
mkdir -p worktree/.git &&
tar -C bare.git -cf - . | tar -C worktree/.git -xf - &&
git -C worktree config core.bare false &&
git -C worktree checkout -f
'
test_done