Skip to content

feat: Add SVN commit support with GUI interface #6101

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

Closed
wants to merge 1 commit into from

Conversation

roomote[bot]
Copy link

@roomote roomote bot commented Jul 23, 2025

This PR implements SVN (Subversion) commit support with a GUI interface similar to the existing Git commits functionality, as requested in #6100.

Changes

  • Created src/utils/svn.ts with SVN utility functions (checkSvnInstalled, searchSvnCommits, getSvnCommitInfo, getSvnWorkingState)
  • Added SvnCommit type and svnCommitSearchResults message type to ExtensionMessage.ts
  • Added searchSvnCommits message type to WebviewMessage.ts
  • Added SVN message handling in webviewMessageHandler.ts
  • Extended context mentions to support SVN revision patterns (r123, svn-changes) in context-mentions.ts
  • Updated ChatTextArea.tsx to handle SVN commit searches
  • Added comprehensive tests for SVN functionality (14 tests)
  • Updated webview context mentions test to include SVN option

Testing

All tests pass successfully:

  • SVN utility functions tests (14 tests)
  • Context mentions tests updated
  • All linting checks pass
  • All type checks pass

Fixes #6100


Important

This PR adds SVN commit support with a GUI interface, including new utility functions, message types, and context menu options, along with comprehensive tests.

  • Behavior:
    • Adds SVN commit support with GUI interface similar to Git.
    • New SVN utility functions in svn.ts: checkSvnInstalled, searchSvnCommits, getSvnCommitInfo, getSvnWorkingState.
    • Handles SVN commit searches in ChatTextArea.tsx and webviewMessageHandler.ts.
    • Extends context mentions to support SVN patterns in context-mentions.ts.
  • Messages:
    • Adds SvnCommit type and svnCommitSearchResults message type to ExtensionMessage.ts and WebviewMessage.ts.
    • Handles searchSvnCommits message in webviewMessageHandler.ts.
  • Testing:
    • Adds 14 tests for SVN functionality in svn.test.ts.
    • Updates context mentions test to include SVN option.
  • Misc:
    • Updates mentionRegex in context-mentions.ts to include SVN patterns.
    • Minor updates to ChatTextArea.tsx for SVN commit handling.

This description was created by Ellipsis for f891aef. You can customize this summary. It will automatically update as commits are pushed.

@roomote roomote bot requested review from mrubens, cte and jr as code owners July 23, 2025 09:00
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. enhancement New feature or request labels Jul 23, 2025
@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Jul 23, 2025
- Add SVN utility functions in src/utils/svn.ts mirroring git.ts functionality
- Add SvnCommit type and svnCommitSearchResults to ExtensionMessage
- Add searchSvnCommits message type to WebviewMessage
- Update webviewMessageHandler to handle SVN commit searches
- Update context-mentions to support SVN revision patterns (r123, @svn-changes)
- Update ChatTextArea to trigger SVN searches and display results
- Add comprehensive test suite for SVN functionality
- Implement SVN repository info extraction and working state detection

Fixes #6100
@@ -201,6 +212,17 @@ const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(
}
}, [selectedType, searchQuery])

// Fetch SVN commits when SVN is selected or when typing a revision number.
useEffect(() => {
if (selectedType === ContextMenuOptionType.Svn || /^r?\d+$/i.test(searchQuery)) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The useEffect that triggers SVN commit searches (when selectedType is SVN or query matches a revision pattern) mirrors the Git search effect effectively. Consider adding a brief comment to clarify the regex logic used for SVN revisions for maintainability.

Suggested change
if (selectedType === ContextMenuOptionType.Svn || /^r?\d+$/i.test(searchQuery)) {
if (selectedType === ContextMenuOptionType.Svn || /^r?\d+$/i.test(searchQuery)) { // Matches SVN revision numbers like "123" or "r123"

@daniel-lxs
Copy link
Collaborator

Implemented on #6117

@daniel-lxs daniel-lxs closed this Jul 24, 2025
@github-project-automation github-project-automation bot moved this from Triage to Done in Roo Code Roadmap Jul 24, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Jul 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. size:XL This PR changes 500-999 lines, ignoring generated files.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Feature: Add SVN commit support with GUI interface similar to Git commits
3 participants