#!/bin/sh
test_description='Test operations that emphasize the delta base cache.
We look at both "log --raw", which should put only trees into the delta cache,
and "log -Sfoo --raw", which should look at both trees and blobs.
Any effects will be emphasized if the test repository is fully packed (loose
objects obviously do not use the delta base cache at all). It is also
emphasized if the pack has long delta chains (e.g., as produced by "gc
--aggressive"), though cache is still quite noticeable even with the default
depth of 50.
The setting of core.deltaBaseCacheLimit in the source repository is also
relevant (depending on the size of your test repo), so be sure it is consistent
between runs.
'
. ./perf-lib.sh
test_perf_large_repo
# puts mostly trees into the delta base cache
test_perf 'log --raw' '
git log --raw >/dev/null
'
test_perf 'log -S' '
git log --raw -Sfoo >/dev/null
'
test_done