feat(watcher): sync SVN working copies automatically#1127
Conversation
Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Translate Windows repository paths for the POSIX SVN client installed by CI, while preserving native Windows SVN URLs. Skip the unrelated cached-store atomic replacement case on Windows until DeusData#1117 is resolved. Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Track the pinned SVN client's path semantics and translate Windows drive paths for MSYS2 across status probes and test fixtures. Preserve the canonical Windows root for content fingerprinting while accepting the SVN runtime path in XML output. Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
Add an isolated direct-argv stdout capture path for Windows and use it for pinned SVN status probes. Preserve literal metacharacters, process exit codes, and the existing restricted handle inheritance model. Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
|
Thanks for the substantial implementation work and for documenting the unresolved cases. The exact head cannot be accepted or expanded in place. Product and supply-chain boundary This introduces a conditional runtime dependency on a system Apache Subversion executable while the project currently promises a zero-runtime-dependency binary. It also changes Current correctness and security blockers
Scope and repository hygiene The PR combines general incremental dump-error propagation, watcher lifetime changes, MCP store invalidation, a new Windows process API, build/CI changes, and the SVN feature. Those need focused prerequisite PRs with their own RED guards. Replace the raw The current security review found no credential, hosted-service, telemetry, vendored-code, or data-exfiltration addition. The blocker is the new local executable/CI dependency plus the unresolved containment and lifecycle defects. Maintainers will decide the product direction separately; this head is not mergeable even if the remaining CI job turns green. |
Acknowledged. I have stopped pushing commits to this head and will leave it unchanged while maintainers decide whether a system SVN dependency fits the product and supply-chain boundary. If that direction is accepted, I will first split the general prerequisites into focused PRs with RED regression guards, then address the full correctness, lifecycle, timeout, work-budget, and repository-hygiene list before returning to the SVN feature. I will not treat a green CI run as making the current head mergeable. |
Serialize MCP query handles with background graph publication on Windows so atomic SQLite replacement can complete. Keep the existing POSIX generation behavior, use a consistent store-gate-to-pipeline lock order, and cover both incremental and full watcher routes. Signed-off-by: lzl51230 <14934913+lzl51230@users.noreply.github.com>
What does this PR do?
SVN working copies can now keep their graph synchronized after local working-copy changes on the watcher's next eligible poll, without requiring a manual full regeneration. The same adaptive cadence and indexing pipeline used by Git remain authoritative: ordinary changes use incremental indexing, while the existing safety threshold can still select a full rebuild.
The watcher observes recursive SVN XML status plus content fingerprints for indexable candidates, pins a trusted system
svnexecutable, and acknowledges a new baseline only after explicit indexing success. Failed or busy updates remain pending for retry, Git keeps precedence in mixed roots, and successful background publication invalidates cached MCP stores on the request thread before the next query. Windows probes use isolated direct-argv stdout capture so MSYS2 paths and filename metacharacters never pass throughcmd.exe, while retaining the existing restricted handle-inheritance model.Session-settled decisions carried from planning: on-disk working-copy authority, SVN-aware polling, existing adaptive timing and pipeline routing, the system SVN CLI prerequisite, and Git precedence (all user-directed); using the fork's
mainand proceeding before maintainer feedback were carried out under flagged contribution-process concerns.Validation
make -f Makefile.cbm test-focused TEST_SUITES='security svn_state watcher integration'(135 passed).-Wall -Wextra -Werrorcompleted successfully.make -j2 -f Makefile.cbm lint-cipassed with CI-matched LLVM 20clang-formatplus cppcheck and the NOLINT whitelist.scripts/security-audit.shand the no-skips policy passed.%/&arguments, nonzero exit propagation, MSYS2 path conversion, and an SVN working-copy path containing metacharacters.Related and follow-up tracking
Related: #1113
svn updateandsvn commitacceptance coverage.Checklist
git commit -s).