Summary
When Partio fetches checkpoint refs (e.g., partio/checkpoints/v1), using the remote name causes git to add persistent refspec entries to .git/config. This pollutes the user's git configuration and can cause unexpected fetch behavior for non-checkpoint branches.
What to implement
Change checkpoint fetch operations to use the remote's URL directly (via git remote get-url <name>) instead of the remote name. This ensures git treats the fetch as a one-off operation and doesn't persist refspec configuration.
Additionally, add an integration test that asserts .git/config is not modified by checkpoint fetch operations.
Why this matters
Users reported that after enabling the tool, their .git/config accumulated refspec entries that changed the behavior of git fetch for all branches. This can confuse users or conflict with other tools that manage git config.
Source: entireio/cli#934
Summary
When Partio fetches checkpoint refs (e.g.,
partio/checkpoints/v1), using the remote name causes git to add persistent refspec entries to.git/config. This pollutes the user's git configuration and can cause unexpected fetch behavior for non-checkpoint branches.What to implement
Change checkpoint fetch operations to use the remote's URL directly (via
git remote get-url <name>) instead of the remote name. This ensures git treats the fetch as a one-off operation and doesn't persist refspec configuration.Additionally, add an integration test that asserts
.git/configis not modified by checkpoint fetch operations.Why this matters
Users reported that after enabling the tool, their
.git/configaccumulated refspec entries that changed the behavior ofgit fetchfor all branches. This can confuse users or conflict with other tools that manage git config.Source: entireio/cli#934