about summary refs log tree commit diff
path: root/third_party/git/t/perf/p3404-rebase-interactive.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/perf/p3404-rebase-interactive.sh')
-rwxr-xr-xthird_party/git/t/perf/p3404-rebase-interactive.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/third_party/git/t/perf/p3404-rebase-interactive.sh b/third_party/git/t/perf/p3404-rebase-interactive.sh
new file mode 100755
index 000000000000..88f47de282c1
--- /dev/null
+++ b/third_party/git/t/perf/p3404-rebase-interactive.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+test_description='Tests rebase -i performance'
+. ./perf-lib.sh
+
+test_perf_default_repo
+
+# This commit merges a sufficiently long topic branch for reasonable
+# performance testing
+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)
+	mv "$1" "$1".bak &&
+	sed -e '1{h;d}' -e 2G <"$1".bak >"$1"
+	;;
+esac
+EOF
+
+test_expect_success 'setup' '
+	git config core.editor "\"$PWD"/swap-first-two.sh\" &&
+	git checkout -f $branch_merge^2
+'
+
+test_perf 'rebase -i' '
+	git rebase -i $branch_merge^
+'
+
+test_done