Repository navigation
Conversation
ZeroMarker
left a comment
There was a problem hiding this comment.
Thanks for the contribution! I found two issues that need attention — see inline comments.
| } | ||
| } | ||
| if !missing.is_empty() { | ||
| delete_missing(path, &missing).await?; |
There was a problem hiding this comment.
Working copy left with D entries on failure, no rollback
delete_missing runs svn delete --force before the unselected-descendants check and before svn commit. If that check fails, or the commit fails (auth, out-of-date, hook rejection, etc.), the selected missing files remain scheduled for deletion. The user is left with D entries they never committed, and the UI shows them as ordinary deletions.
Suggestion: move the delete after all pre-commit validation, and svn revert those paths if the commit fails.
| }) | ||
| .collect(); | ||
|
|
||
| if auto_delete_missing { |
There was a problem hiding this comment.
Setting has no effect when committing the whole working copy
Auto-delete only runs in the explicit files branch. With the setting enabled and no file list (whole working copy commit), missing files are never scheduled for deletion. svn commit skips ! entries, so they silently stay missing, contrary to what the setting promises.
Suggestion: when no file list is given, collect missing entries via svn status and run the same deletion logic.
Summary
Add a settings toggle for automatically scheduling selected missing SVN files for deletion before commit. The toggle is disabled by default for backward compatibility; when enabled, the Tauri commit path runs
svn delete --forceonly for selected missing paths. Localized settings labels, documentation, and integration coverage are included.Verification
npm run buildnpm run test:unit(57 passed)cargo fmt --manifest-path src-tauri/Cargo.toml -- --checkcargo test --manifest-path src-tauri/Cargo.toml --offline -- --test-threads=1(59 passed, 2 ignored)git diff --checkChecklist