mirror of
https://github.com/git/git.git
synced 2024-11-02 15:28:21 +01:00
1af8b01309
Add a new perf test for testing the performance of log while computing OID abbreviations. Using --oneline --raw and --parents options maximizes the number of OIDs to abbreviate while still spending some time computing diffs. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
38 lines
808 B
Bash
Executable file
38 lines
808 B
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='Tests log -L performance'
|
|
. ./perf-lib.sh
|
|
|
|
test_perf_default_repo
|
|
|
|
# Pick a file to log pseudo-randomly. The sort key is the blob hash,
|
|
# so it is stable.
|
|
test_expect_success 'select a file' '
|
|
git ls-tree HEAD | grep ^100644 |
|
|
sort -k 3 | head -1 | cut -f 2 >filelist
|
|
'
|
|
|
|
file=$(cat filelist)
|
|
export file
|
|
|
|
test_perf 'git rev-list --topo-order (baseline)' '
|
|
git rev-list --topo-order HEAD >/dev/null
|
|
'
|
|
|
|
test_perf 'git log --follow (baseline for -M)' '
|
|
git log --oneline --follow -- "$file" >/dev/null
|
|
'
|
|
|
|
test_perf 'git log -L (renames off)' '
|
|
git log --no-renames -L 1:"$file" >/dev/null
|
|
'
|
|
|
|
test_perf 'git log -L (renames on)' '
|
|
git log -M -L 1:"$file" >/dev/null
|
|
'
|
|
|
|
test_perf 'git log --oneline --raw --parents' '
|
|
git log --oneline --raw --parents >/dev/null
|
|
'
|
|
|
|
test_done
|