Fix git_repo fixture for submodule file:// protocol#511
Merged
Conversation
…module file protocol why: Document the issue where git_repo fixture lacks set_home dependency, causing submodule operations to fail in isolated build environments what: - Add test_git_repo_fixture_submodule_file_protocol with xfail marker - Test isolates HOME to prove child processes can't find gitconfig - References GitHub issue #509
…sses why: Child processes spawned by git submodule operations need HOME set to find $HOME/.gitconfig with protocol.file.allow=always configuration what: - Add set_home fixture dependency to git_repo fixture - Fixes GitHub issue #509 for users of git_repo fixture
why: The git_repo fixture now has set_home dependency, so the test passes what: - Remove @pytest.mark.xfail from test_git_repo_fixture_submodule_file_protocol - Update docstring to document the fix
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #511 +/- ##
==========================================
+ Coverage 53.38% 53.46% +0.07%
==========================================
Files 38 38
Lines 5696 5705 +9
Branches 1063 1063
==========================================
+ Hits 3041 3050 +9
Misses 2144 2144
Partials 511 511 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
git_repo fixture for submodule file:// protocol
Member
Author
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
tony
added a commit
that referenced
this pull request
Jan 25, 2026
why: Document the pytest plugin fix for users upgrading what: - Add changelog entry for git_repo fixture set_home dependency
why: Document the pytest plugin fix for users upgrading what: - Add changelog entry for git_repo fixture set_home dependency
6dba85d to
54d3187
Compare
tony
added a commit
that referenced
this pull request
Jan 25, 2026
why: The fixture was returning early if .gitconfig already existed, even if the file was empty or missing protocol.file.allow=always. This caused failures on Arch Linux build where git/container setup creates an incomplete .gitconfig before the fixture runs. what: - Remove early return that skipped writing when file exists - Fixture now always writes the full config with protocol.file.allow - Follow-up to #510, #511 for #509
4 tasks
tony
added a commit
that referenced
this pull request
Jan 25, 2026
why: The fixture was returning early if .gitconfig already existed, even if the file was empty or missing protocol.file.allow=always. This caused failures on Arch Linux build where git/container setup creates an incomplete .gitconfig before the fixture runs. what: - Remove early return that skipped writing when file exists - Fixture now always writes the full config with protocol.file.allow - Follow-up to #510, #511 for #509
tony
added a commit
that referenced
this pull request
Jan 25, 2026
## Summary - Fix `gitconfig` fixture to always write config - removes early return that skipped writing when file exists - Follow-up to #510, #511 for #509 ## Problem The `gitconfig` fixture had an early return at lines 157-158: ```python if gitconfig.exists(): return gitconfig ``` If ANYTHING creates `.gitconfig` first (empty or incomplete) - git itself during `git init`, the nspawn container setup, another fixture - the fixture returns early WITHOUT writing `protocol.file.allow=always`. Confirmed by reporter running debug script: empty `.gitconfig` was created by container/git before the fixture could write the proper config. ## Solution Remove the early return. The fixture now always writes the complete config with `protocol.file.allow=always`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
set_homedependency togit_repofixture so child processes (e.g., spawned bygit submodule add) can find$HOME/.gitconfigwithprotocol.file.allow=alwaystest_git_repo_fixture_submodule_file_protocolRoot Cause
The
git_repofixture hadset_gitconfig(which setsGIT_CONFIGenv var) but notset_home. Child processes spawned bygit submodule adddon't inheritGIT_CONFIGand need$HOME/.gitconfigto find the protocol configuration.Test plan
test_git_repo_fixture_submodule_file_protocolpassesuv run pytest tests/cmd/test_git.py -k submoduleuv run pytestuv run ruff check .uv run mypy src testsFixes #509
See: #509 (comment)