From d7f47646cb6ff0ac1f3add967ae4f49ae799dd40 Mon Sep 17 00:00:00 2001 From: ScriptedAlchemy Date: Sat, 19 Sep 2026 22:11:19 +0000 Subject: [PATCH] test(runtime-core): keep git auto-maintenance out of the fixture Git 2.47+ detaches maintenance after a commit and holds .git/objects/maintenance.lock while it runs. The authority tests snapshot the git dir before and after their reads to prove the authority writes nothing, and the lock file landed in the before snapshot and vanished before the after one, so the comparison failed on a CI runner with git 2.55. The application crate fixture already disables maintenance.auto and gc.auto for the same reason. Co-Authored-By: Claude Fable 5.1 --- .../tests/git_repository_authority.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/tracedecay-runtime-core/tests/git_repository_authority.rs b/crates/tracedecay-runtime-core/tests/git_repository_authority.rs index 49e0573b4f..a90ec40ef7 100644 --- a/crates/tracedecay-runtime-core/tests/git_repository_authority.rs +++ b/crates/tracedecay-runtime-core/tests/git_repository_authority.rs @@ -58,6 +58,15 @@ impl Fixture { // to use the extended-length form. A no-op elsewhere. "-c", "core.longpaths=true", + // Git 2.47+ detaches `maintenance run --auto` after a commit + // and holds `.git/objects/maintenance.lock` while it runs, + // which lands in a git-dir snapshot and vanishes before the + // next one. The tests snapshot the git dir to prove the + // authority writes nothing, so the fixture must not either. + "-c", + "maintenance.auto=false", + "-c", + "gc.auto=0", ]) .args(plain_git_args(args)) .current_dir(plain_host_path(self.path())) @@ -79,6 +88,7 @@ impl Fixture { fn import_linear_history(&self, commits: usize) { let mut child = Command::new("git") + .args(["-c", "maintenance.auto=false", "-c", "gc.auto=0"]) .arg("fast-import") .arg("--quiet") .current_dir(plain_host_path(self.path()))