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? --- t/perf/p2000-sparse-operations.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/t/perf/p2000-sparse-operations.sh b/t/perf/p2000-sparse-operations.sh index 597626276f..8529e3d295 100755 --- a/t/perf/p2000-sparse-operations.sh +++ b/t/perf/p2000-sparse-operations.sh @@ -25,6 +25,7 @@ test_expect_success 'setup repo and indexes' ' git commit -m "level 0" && BLOB=$(git rev-parse HEAD:a) && OLD_COMMIT=$(git rev-parse HEAD) && + test_export OLD_COMMIT && OLD_TREE=$(git rev-parse HEAD^{tree}) && for i in $(test_seq 1 3) @@ -109,6 +110,14 @@ test_perf_on_all git status test_perf_on_all git add -A test_perf_on_all git add . test_perf_on_all git commit -a -m A + +test_expect_success 'add reflog entry' ' + for repo in full-v3 full-v4 sparse-v3 sparse-v4 + do + git -C $repo checkout $OLD_COMMIT + done +' + test_perf_on_all git checkout -f - test_done -- 2.33.0