about summary refs log tree commit diff
path: root/third_party/git/t/perf/p4211-line-log.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/perf/p4211-line-log.sh')
-rwxr-xr-xthird_party/git/t/perf/p4211-line-log.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/third_party/git/t/perf/p4211-line-log.sh b/third_party/git/t/perf/p4211-line-log.sh
new file mode 100755
index 000000000000..392bcc0e51f8
--- /dev/null
+++ b/third_party/git/t/perf/p4211-line-log.sh
@@ -0,0 +1,42 @@
+#!/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_perf 'git log --oneline --raw --parents -1000' '
+	git log --oneline --raw --parents -1000 >/dev/null
+'
+
+test_done