Installing a git source clones the local cache repo into bundler/gems with
git's hardlink optimization. Git 2.54 kicks off commit-graph writes as part
of automatic maintenance after a fetch or clone, and when that background
write touches the cache while the hardlinking clone is enumerating it, the
clone aborts with "hardlink different from source" pointing at a
tmp_graph_* file. It shows up as a flaky failure on CI.
Pass gc.auto=0 and maintenance.auto=false to every git invocation so no
background maintenance is ever spawned for these throwaway repos, removing
the race. The options are injected only at the command-execution layer, so
redacted command strings in error messages are unaffected.
https://github.com/ruby/rubygems/commit/7bc41a21fa
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>