[PATCH v3 0/3] Introduce a perf test for interactive rebase
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- May 13, 2016, 13:25 UTC
- Message-ID
- <cover.1463145936.git.johannes.schindelin@gmx.de>
- In-Reply-To
- <cover.1462955446.git.johannes.schindelin@gmx.de>
This is the second preparatory patch series for my rebase--helper work (i.e. moving parts of the interactive rebase into a builtin).
It simply introduces a perf test (and ensures that it runs in my environment) so as to better determine how much the performance changes, really.
Johannes Schindelin (3): perf: let's disable symlinks when they are not available perf: make the tests work in worktrees Add a perf test for rebase -i
t/perf/p3404-rebase-interactive.sh | 36 ++++++++++++++++++++++++++++++++++++ t/perf/perf-lib.sh | 19 +++++++++++-------- 2 files changed, 47 insertions(+), 8 deletions(-) create mode 100755 t/perf/p3404-rebase-interactive.sh
Published-As: https://github.com/dscho/git/releases/tag/perf-rebase-i-v3 Interdiff vs v2:
diff --git a/t/perf/p3404-rebase-interactive.sh b/t/perf/p3404-rebase-interactive.sh
index 382163c..88f47de 100755
--- a/t/perf/p3404-rebase-interactive.sh
+++ b/t/perf/p3404-rebase-interactive.sh
@@ -7,9 +7,14 @@ test_perf_default_repo
# This commit merges a sufficiently long topic branch for reasonable
# performance testing
-branch_merge=ba5312d
+branch_merge=ba5312da19c6fdb6c6747d479f58932aae6e900c^{commit}
export branch_merge
+git rev-parse --verify $branch_merge >/dev/null 2>&1 || {
+ skip_all='skipping because $branch_merge was not found'
+ test_done
+}
+
write_script swap-first-two.sh <<\EOF
case "$1" in
*/COMMIT_EDITMSG)
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh
index cb88b08..5ef1744 100644
--- a/t/perf/perf-lib.sh
+++ b/t/perf/perf-lib.sh
@@ -80,8 +80,8 @@ test_perf_create_repo_from () {
error "bug in the test script: not 2 parameters to test-create-repo"
repo="$1"
source="$2"
- source_git="$(cd "$source" && git rev-parse --git-dir)"
- objects_dir="$(cd "$source" && git rev-parse --git-path objects)"
+ source_git="$(git -C "$source" rev-parse --git-dir)"
+ objects_dir="$(git -C "$source" rev-parse --git-path objects)"
mkdir -p "$repo/.git"
(
{ cp -Rl "$objects_dir" "$repo/.git/" 2>/dev/null ||
@@ -96,7 +96,6 @@ test_perf_create_repo_from () {
esac
done &&
cd "$repo" &&
- git init -q &&
git init -q && {
test_have_prereq SYMLINKS ||
git config core.symlinks false-- 2.8.2.465.gb077790