diff options
Diffstat (limited to 'third_party/git/t/perf/repos')
-rw-r--r-- | third_party/git/t/perf/repos/.gitignore | 1 | ||||
-rwxr-xr-x | third_party/git/t/perf/repos/inflate-repo.sh | 85 | ||||
-rwxr-xr-x | third_party/git/t/perf/repos/many-files.sh | 110 |
3 files changed, 0 insertions, 196 deletions
diff --git a/third_party/git/t/perf/repos/.gitignore b/third_party/git/t/perf/repos/.gitignore deleted file mode 100644 index 72e3dc3e1947..000000000000 --- a/third_party/git/t/perf/repos/.gitignore +++ /dev/null @@ -1 +0,0 @@ -gen-*/ diff --git a/third_party/git/t/perf/repos/inflate-repo.sh b/third_party/git/t/perf/repos/inflate-repo.sh deleted file mode 100755 index fcfc992b5b02..000000000000 --- a/third_party/git/t/perf/repos/inflate-repo.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# Inflate the size of an EXISTING repo. -# -# This script should be run inside the worktree of a TEST repo. -# It will use the contents of the current HEAD to generate a -# commit containing copies of the current worktree such that the -# total size of the commit has at least <target_size> files. -# -# Usage: [-t target_size] [-b branch_name] - -set -e - -target_size=10000 -branch_name=p0006-ballast -ballast=ballast - -while test "$#" -ne 0 -do - case "$1" in - -b) - shift; - test "$#" -ne 0 || { echo 'error: -b requires an argument' >&2; exit 1; } - branch_name=$1; - shift ;; - -t) - shift; - test "$#" -ne 0 || { echo 'error: -t requires an argument' >&2; exit 1; } - target_size=$1; - shift ;; - *) - echo "error: unknown option '$1'" >&2; exit 1 ;; - esac -done - -git ls-tree -r HEAD >GEN_src_list -nr_src_files=$(cat GEN_src_list | wc -l) - -src_branch=$(git symbolic-ref --short HEAD) - -echo "Branch $src_branch initially has $nr_src_files files." - -if test $target_size -le $nr_src_files -then - echo "Repository already exceeds target size $target_size." - rm GEN_src_list - exit 1 -fi - -# Create well-known branch and add 1 file change to start -# if off before the ballast. -git checkout -b $branch_name HEAD -echo "$target_size" > inflate-repo.params -git add inflate-repo.params -git commit -q -m params - -# Create ballast for in our branch. -copy=1 -nr_files=$nr_src_files -while test $nr_files -lt $target_size -do - sed -e "s| | $ballast/$copy/|" <GEN_src_list | - git update-index --index-info - - nr_files=$(expr $nr_files + $nr_src_files) - copy=$(expr $copy + 1) -done -rm GEN_src_list -git commit -q -m "ballast" - -# Modify 1 file and commit. -echo "$target_size" >> inflate-repo.params -git add inflate-repo.params -git commit -q -m "ballast plus 1" - -nr_files=$(git ls-files | wc -l) - -# Checkout master to put repo in canonical state (because -# the perf test may need to clone and enable sparse-checkout -# before attempting to checkout a commit with the ballast -# (because it may contain 100K directories and 1M files)). -git checkout $src_branch - -echo "Repository inflated. Branch $branch_name has $nr_files files." - -exit 0 diff --git a/third_party/git/t/perf/repos/many-files.sh b/third_party/git/t/perf/repos/many-files.sh deleted file mode 100755 index 28720e4e1041..000000000000 --- a/third_party/git/t/perf/repos/many-files.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# Generate test data repository using the given parameters. -# When omitted, we create "gen-many-files-d-w-f.git". -# -# Usage: [-r repo] [-d depth] [-w width] [-f files] -# -# -r repo: path to the new repo to be generated -# -d depth: the depth of sub-directories -# -w width: the number of sub-directories at each level -# -f files: the number of files created in each directory -# -# Note that all files will have the same SHA-1 and each -# directory at a level will have the same SHA-1, so we -# will potentially have a large index, but not a large -# ODB. -# -# Ballast will be created under "ballast/". - -EMPTY_BLOB=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 - -set -e - -# (5, 10, 9) will create 999,999 ballast files. -# (4, 10, 9) will create 99,999 ballast files. -depth=5 -width=10 -files=9 - -while test "$#" -ne 0 -do - case "$1" in - -r) - shift; - test "$#" -ne 0 || { echo 'error: -r requires an argument' >&2; exit 1; } - repo=$1; - shift ;; - -d) - shift; - test "$#" -ne 0 || { echo 'error: -d requires an argument' >&2; exit 1; } - depth=$1; - shift ;; - -w) - shift; - test "$#" -ne 0 || { echo 'error: -w requires an argument' >&2; exit 1; } - width=$1; - shift ;; - -f) - shift; - test "$#" -ne 0 || { echo 'error: -f requires an argument' >&2; exit 1; } - files=$1; - shift ;; - *) - echo "error: unknown option '$1'" >&2; exit 1 ;; - esac -done - -# Inflate the index with thousands of empty files. -# usage: dir depth width files -fill_index() { - awk -v arg_dir=$1 -v arg_depth=$2 -v arg_width=$3 -v arg_files=$4 ' - function make_paths(dir, depth, width, files, f, w) { - for (f = 1; f <= files; f++) { - print dir "/file" f - } - if (depth > 0) { - for (w = 1; w <= width; w++) { - make_paths(dir "/dir" w, depth - 1, width, files) - } - } - } - END { make_paths(arg_dir, arg_depth, arg_width, arg_files) } - ' </dev/null | - sed "s/^/100644 $EMPTY_BLOB /" | - git update-index --index-info - return 0 -} - -[ -z "$repo" ] && repo=gen-many-files-$depth.$width.$files.git - -mkdir $repo -cd $repo -git init . - -# Create an initial commit just to define master. -touch many-files.empty -echo "$depth $width $files" >many-files.params -git add many-files.* -git commit -q -m params - -# Create ballast for p0006 based upon the given params and -# inflate the index with thousands of empty files and commit. -git checkout -b p0006-ballast -fill_index "ballast" $depth $width $files -git commit -q -m "ballast" - -nr_files=$(git ls-files | wc -l) - -# Modify 1 file and commit. -echo "$depth $width $files" >>many-files.params -git add many-files.params -git commit -q -m "ballast plus 1" - -# Checkout master to put repo in canonical state (because -# the perf test may need to clone and enable sparse-checkout -# before attempting to checkout a commit with the ballast -# (because it may contain 100K directories and 1M files)). -git checkout master - -echo "Repository "$repo" ($depth, $width, $files) created. Ballast $nr_files." -exit 0 |