Fix credential prompts overlapping in parallel VCS operations #60
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
Fixes #35: Prevents credential prompts from overlapping when using HTTPS URLs in parallel VCS operations.
Problem
When mxdev processes multiple HTTPS packages in parallel (default: 4 threads), git credential prompts get mixed with output from other threads, making it confusing for users to enter credentials.
Solution: Smart Threading
Added a new configuration option (enabled by default) that uses a two-phase approach:
Phase 1: Process HTTPS packages serially (threads=1)
Phase 2: Process remaining packages in parallel (threads=N)
Configuration
Set to
falseif you have credential helpers configured and never see prompts.Implementation Details
checkout()andupdate()methodsurl.startswith('https://'))Changes
smart-threadingsetting with defaulttruesmart_threadingparameter toWorkingCopies.__init__()_separate_https_packages()helper methodcheckout()to use two-phase processingupdate()to use two-phase processingsmart_threadingtoWorkingCopiesTesting
Test Plan
cc @jensens