Allow bundle pristine to work for git gems in the same repo #9196
+64
−0
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.
What was the end-user or developer problem that led to this PR?
Fix #9186
What is your fix for the problem, implemented in this PR?
Running
bundle pristinein a Gemfile where there is many git gem pointing to the same repository will result in a error "Another git process seems to be running in this repository".Context
This error is a regression since a555fd6 where
bundle pristinenow runs in parallel which could lead to running simultaneous git operations in the same repository.Solution
When Bundler pristine a git gem it does a
git reset --hardwithout specifying a path. This means the whole repository will be reset. In this case, we can leverage that by just pristining one gem per unique git sources. This is also more efficient.rubygems/bundler/lib/bundler/source/git/git_proxy.rb
Line 140 in 570c341
Make sure the following tasks are checked