perf: add function to setup a fresh test repo
Add a function to setup a fresh test repo via 'git init' to compliment the existing functions to copy over a normal & large repo. Some performance tests don't need any existing repository data at all to be significant, e.g. tests which stress glob matches against single pathological revisions or files, which I'm about to add in a subsequent commit. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason committed
May 11, 2017 at 09:41 UTC
91de27c54a6ede76b3859bc89f4c387705025f6e
2 files changed
+16
-4
t/perf/README
+1
@@ -106,6 +106,7 @@ sources perf-lib.sh:
106
107
After that you will want to use some of the following:
108
109
+ test_perf_fresh_repo # sets up an empty repository
110
test_perf_default_repo # sets up a "normal" repository
111
test_perf_large_repo # sets up a "large" repository
112
t/perf/perf-lib.sh
+15
-4
@@ -78,6 +78,10 @@ if test -z "$GIT_PERF_LARGE_REPO"; then
78
GIT_PERF_LARGE_REPO=$TEST_DIRECTORY/..
79
fi
80
81
+test_perf_do_repo_symlink_config_ () {
82
+ test_have_prereq SYMLINKS || git config core.symlinks false
83
+}
84
+
85
test_perf_create_repo_from () {
86
test "$#" = 2 ||
87
error "bug in the test script: not 2 parameters to test-create-repo"
@@ -102,15 +106,22 @@ test_perf_create_repo_from () {
106
) &&
107
(
108
cd "$repo" &&
105
- "$MODERN_GIT" init -q && {
106
- test_have_prereq SYMLINKS ||
107
- git config core.symlinks false
108
- } &&
109
+ "$MODERN_GIT" init -q &&
110
+ test_perf_do_repo_symlink_config_ &&
111
mv .git/hooks .git/hooks-disabled 2>/dev/null
112
) || error "failed to copy repository '$source' to '$repo'"
113
}
114
115
# call at least one of these to establish an appropriately-sized repository
116
+test_perf_fresh_repo () {
117
+ repo="${1:-$TRASH_DIRECTORY}"
118
+ "$MODERN_GIT" init -q "$repo" &&
119
+ (
120
+ cd "$repo" &&
121
+ test_perf_do_repo_symlink_config_
122
+ )
123
+}
124
+
125
test_perf_default_repo () {
126
test_perf_create_repo_from "${1:-$TRASH_DIRECTORY}" "$GIT_PERF_REPO"
127
}