Re: p2000 failure due to empty reflog
flat view
From: René Scharfe <hidden>
Date: 2021-10-05 20:28:44
Subsystem:
the rest · Maintainer:
Linus Torvalds
Am 04.10.21 um 21:55 schrieb Derrick Stolee:
On 10/2/2021 1:37 PM, René Scharfe wrote:quoted
p2000 fails for me and reports: perf 18 - git checkout -f - (full-v3): running: ( cd full-v3 && echo >>f2/f4/a && git checkout -f - ) error: pathspec '-' did not match any file(s) known to git checkout fails because the reflog is empty, so the "-" can't be resolved. The pathspec error message is confusing, though. The patch below adds a reflog entry and allows the script to succeed. Before the "test_perf_on_all git commit -a -m A", there are two reflog entries in each of the five clones, after it there are none. How is that even possible?That is certainly confusing. Is there something about your global (or local to your test repo) GC settings that cause an auto-GC to prune the reflog aggressively?
Good point. I have gc.auto=0 in my config, but the tests use their own, empty config. A trace shows that "git gc --auto --no-quiet" is started. The following patch turns that off and allows the tests to succeed. Not doing maintenance in parallel to a performance test is a good idea anyway, but I still don't understand why it would empty the reflog -- that seems excessive, dangerous even. One of the maintenance commands from the trace is "git reflog expire --all". If I put that in before the "checkout -" test (on top of the patch below) then the reflog is emptied again and the test fails. René --- t/perf/p2000-sparse-operations.sh | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/t/perf/p2000-sparse-operations.sh b/t/perf/p2000-sparse-operations.sh
index 597626276f..9a06904247 100755
--- a/t/perf/p2000-sparse-operations.sh
+++ b/t/perf/p2000-sparse-operations.sh@@ -105,6 +105,13 @@ test_perf_on_all () { done } +test_expect_success 'disable housekeeping' ' + for repo in full-v3 full-v4 sparse-v3 sparse-v4 + do + git -C $repo config gc.auto 0 + done +' + test_perf_on_all git status test_perf_on_all git add -A test_perf_on_all git add . --
2.33.0