t/perf: measure --force-with-lease in p5516
Extend p5516 with rows that push the same delete refspecs plus one explicit --force-with-lease=<refname>:<expect> per refspec. The new rows are used to demonstrate a speedup in a subsequent commit. Numbers as of this commit (`./p5516-push-delete-refspec.sh -r create,lease`): Test this tree ------------------------------------------- 5516.16: empty:lease:1 0.12(0.06+0.10) 5516.19: empty:lease:10 0.17(0.10+0.10) 5516.22: empty:lease:100 0.45(0.38+0.10) 5516.25: mirror:lease:1 0.15(0.09+0.10) 5516.28: mirror:lease:10 0.18(0.12+0.10) 5516.31: mirror:lease:100 0.52(0.42+0.10) Signed-off-by: Jon Simons <jon@jonsimons.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>seen
parent
d2634888cc
commit
fa869359ee
|
|
@ -6,6 +6,9 @@ Measure client-side matching of explicit delete refspecs with "git push
|
|||
--dry-run" against a server that advertises lots of refs. An empty client
|
||||
(no local refs) and a mirror client (full local copy of the server refs)
|
||||
are tested pushing 1, 10, and 100 refspecs each.
|
||||
|
||||
A second set of rows measures one --force-with-lease per refspec for
|
||||
timing those paths.
|
||||
'
|
||||
. ./perf-lib.sh
|
||||
|
||||
|
|
@ -24,6 +27,8 @@ test_expect_success 'create server with many refs and two clients' '
|
|||
git -C client_mirror config --unset remote.origin.mirror
|
||||
'
|
||||
|
||||
oid=$(git -C server rev-parse HEAD)
|
||||
|
||||
for mode in empty mirror
|
||||
do
|
||||
client=client_$mode
|
||||
|
|
@ -39,4 +44,24 @@ do
|
|||
done
|
||||
done
|
||||
|
||||
for mode in empty mirror
|
||||
do
|
||||
client=client_$mode
|
||||
for nr_refspecs in 1 10 100
|
||||
do
|
||||
test_expect_success "create $mode lease refspecs: $nr_refspecs" '
|
||||
test_seq -f ":refs/heads/b%d" $nr_refspecs >refspecs
|
||||
'
|
||||
|
||||
test_expect_success "create $mode leases: $nr_refspecs" '
|
||||
test_seq -f "refs/heads/b%d:'"$oid"'" $nr_refspecs |
|
||||
sed "s/^/--force-with-lease=/" >leases
|
||||
'
|
||||
|
||||
test_perf "$mode:lease:$nr_refspecs" '
|
||||
git -C '"$client"' push --dry-run origin $(cat refspecs) $(cat leases)
|
||||
'
|
||||
done
|
||||
done
|
||||
|
||||
test_done
|
||||
|
|
|
|||
Loading…
Reference in New Issue