Summary
Commit 11fe5668026c4e62837bd688578dd158679c7d60 removed the archive-time hard requirement that rejected path collisions up front. That improves archive portability, but it leaves a follow-up gap on restore: a snapshot can now legitimately contain paths that cannot be materialized cleanly on the current OS/filesystem.
Problem
Restore should not rely on every archived path being directly writable on every target OS.
Examples:
- Case-only distinct paths archived on a case-sensitive filesystem, then restored onto a case-insensitive filesystem
- Windows-invalid names or path forms restored on Windows (
CON, NUL, trailing dots/spaces, etc.)
- Other filesystem-specific path conflicts where two archived entries map to the same effective destination path
Today this looks like a place where restore can still fail awkwardly or behave unclearly after the archive-side validator was removed.
Enhancement
Add a restore-side strategy for cross-OS compatibility that degrades gracefully instead of failing the whole restore.
Possible direction:
- Detect destination-path conflicts before writing files
- Restore all non-conflicting files normally
- Skip or quarantine conflicting entries with explicit reporting
- Surface a clear summary of skipped/conflicting paths in the restore result / logs
Acceptance Direction
- Restoring a snapshot with cross-OS-incompatible paths should not abort the entire restore when unaffected files can still be restored
- The user should get a clear explanation of which paths were skipped or conflicted and why
- Behavior should be covered by integration tests for representative cross-OS collision cases
Context
This is a follow-up to the archive-side change in 11fe5668026c4e62837bd688578dd158679c7d60.
Summary
Commit
11fe5668026c4e62837bd688578dd158679c7d60removed the archive-time hard requirement that rejected path collisions up front. That improves archive portability, but it leaves a follow-up gap on restore: a snapshot can now legitimately contain paths that cannot be materialized cleanly on the current OS/filesystem.Problem
Restore should not rely on every archived path being directly writable on every target OS.
Examples:
CON,NUL, trailing dots/spaces, etc.)Today this looks like a place where restore can still fail awkwardly or behave unclearly after the archive-side validator was removed.
Enhancement
Add a restore-side strategy for cross-OS compatibility that degrades gracefully instead of failing the whole restore.
Possible direction:
Acceptance Direction
Context
This is a follow-up to the archive-side change in
11fe5668026c4e62837bd688578dd158679c7d60.