-
Notifications
You must be signed in to change notification settings - Fork 14
vcspull add: Fix more issues
#482
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
Merged
Merged
Conversation
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
why: Document the duplicate-root data loss bug surfaced by vcspull add --no-merge. what: - add parametrized fixture mirroring the reported config layout to reproduce data loss - mark the regression test xfail until the loader/writer preserve duplicate sections
why: Drive duplicate-preserving loader and writer work via failing tests and CLI regression coverage. what: - assert DuplicateAwareConfigReader exposes ordered top-level items - add writer regression verifying duplicate sections persist on save - extend CLI no-merge test expectations and discovery mocks for new loader API
why: Provide structured metadata so writers can replay duplicate workspace roots without loss. what: - extend DuplicateAwareConfigReader to capture ordered top-level items - propagate new load_with_duplicates return signature through CLI/config callers
why: Finalize the regression to ensure vcspull add keeps duplicate workspace roots when --no-merge. what: - remove xfail and validate ordered items before and after the add operation
why: should respect duplicate workspace roots instead of rewriting configs when users opt out of merging. what: - track ordered top-level items from the loader and aggregate them for duplicate-aware operations - introduce duplicate-preserving YAML writer and invoke it for --no-merge updates
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #482 +/- ##
==========================================
- Coverage 79.10% 79.04% -0.06%
==========================================
Files 13 13
Lines 1737 1785 +48
Branches 369 381 +12
==========================================
+ Hits 1374 1411 +37
- Misses 229 235 +6
- Partials 134 139 +5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
why: Surface the data-loss regression fix in the upcoming release notes. what: - add bug-fix entry under v1.45.x referencing PR #482
This was referenced Nov 3, 2025
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.
Continuation of #481
Changes
Regression coverage: tests/cli(test[add]) for --no-merge data loss
why: Capture the originally reported duplicate-root regression in a focused test fixture.
what:
.vcspull.yamlvcspull add --no-mergeLoader enhancements: preserve ordered duplicate items
why: Writers need to replay duplicate workspace roots exactly as loaded.
what:
DuplicateAwareConfigReaderto recordtop_level_itemsWriter helper: duplicate-safe YAML emission
why:
save_config_yamlflattens duplicates;--no-mergepaths must round-trip the original layout.what:
save_config_yaml_with_itemsCLI fix:
vcspull add --no-mergepreserves duplicateswhy: Avoid data loss when users opt out of automatic merging.
what:
--no-mergewrites tosave_config_yaml_with_itemsVerification
uv run ruff check . --fix --show-fixesuv run ruff format .uv run mypyuv run py.test