-
Notifications
You must be signed in to change notification settings - Fork 11
Fix git_repo fixture for submodule file:// protocol
#511
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
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 👎. |
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
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
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
## 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`.
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)