ai-generated commit message synthesis from code diffs
Analyzes unified diffs from staged SVN changes and generates contextually-appropriate commit messages using configurable AI models (OpenAI, Alibaba Qwen, or others). The extension extracts file-level and directory-level diffs, sends them to the configured AI provider via encrypted API keys, and returns auto-generated commit text that the user can accept, edit, or discard before committing. Uses 30-day local caching to reduce redundant API calls for identical diffs.
Unique: Integrates AI commit message generation directly into VS Code's SCM provider interface with configurable multi-provider support (OpenAI, Qwen) and local 30-day diff caching, eliminating the need for external TortoiseSVN GUI or separate commit message tools. Uses VS Code's native secure storage API for encrypted API key management, preventing credential leakage to other extensions.
vs alternatives: Lighter-weight than TortoiseSVN + external AI tools because it runs natively in VS Code without spawning separate processes, and supports multiple AI providers without vendor lock-in, though it lacks the fine-grained prompt customization of dedicated commit message generators like Conventional Commits or Commitizen.
visual diff comparison with side-by-side rendering
Displays unified diffs between working copy and SVN repository using VS Code's native diff viewer, rendering changes in a left-right side-by-side layout with syntax highlighting and line-by-line annotations. Triggered via right-click context menu on files or the command palette, allowing users to review changes before committing. The diff is generated by invoking native SVN command-line tools (`svn diff`) and piped directly into VS Code's diff renderer without intermediate processing.
Unique: Leverages VS Code's native diff renderer (same engine used for Git diffs) to display SVN changes without custom UI code, ensuring consistency with VS Code's UX patterns and reducing maintenance burden. Integrates directly into the SCM Providers API, making diffs accessible from the Source Control sidebar and command palette without context switching.
vs alternatives: More integrated than TortoiseSVN's diff viewer because it runs inside the IDE and uses VS Code's syntax highlighting engine, but less feature-rich than dedicated diff tools like Beyond Compare because it lacks three-way merge visualization and inline editing.
cross-platform workspace integration (windows/macos/linux)
Provides a unified VS Code extension that works identically on Windows, macOS, and Linux by abstracting platform-specific differences in SVN installation paths, command invocation, and file path handling. The extension detects the host OS and configures SVN tool discovery accordingly (e.g., checking standard installation paths for SlikSVN on Windows, using Homebrew paths on macOS, checking /usr/bin on Linux). File paths are normalized to handle Windows backslashes vs Unix forward slashes.
Unique: Abstracts platform-specific SVN installation and command invocation differences by detecting the host OS and configuring tool discovery accordingly, enabling a single extension codebase to work identically on Windows, macOS, and Linux. This eliminates the need for separate platform-specific extensions or complex user configuration.
vs alternatives: More portable than TortoiseSVN (Windows-only) because it works on all major operating systems, and more user-friendly than command-line SVN because it provides a unified IDE interface across platforms, though it requires users to install SVN separately on each platform.
sidebar panel with multi-tag file filtering and status display
Displays a sidebar panel in VS Code's Source Control view that shows all files in the working copy with their SVN status (modified, added, deleted, conflicted, etc.). Files are tagged by status type, and users can filter the sidebar display by clicking on tags to show/hide files matching that tag. The sidebar also displays the local SVN version and provides right-click context menu access to file-level operations (commit, diff, revert, etc.).
Unique: Integrates SVN status display into VS Code's native Source Control sidebar using predefined status tags (modified, added, deleted, conflicted) with click-based filtering. This provides a familiar Git-like sidebar experience for SVN users without requiring custom UI panels.
vs alternatives: More integrated than TortoiseSVN's file browser because it lives in the IDE sidebar and uses VS Code's native UI components, but less feature-rich than TortoiseSVN because it lacks hierarchical file organization and real-time updates.
encrypted credential storage via vs code secure storage api
Stores sensitive data (API keys for AI providers, SVN repository credentials) using VS Code's secure storage API, which leverages OS-level encryption: Windows Credential Manager on Windows, Keychain on macOS, and Secret Service on Linux. This prevents credentials from being stored in plaintext in VS Code's settings.json or extension state files, and prevents other extensions from accessing the credentials. The extension encrypts credentials before passing them to VS Code's secure storage and decrypts them when needed for API calls or SVN operations.
Unique: Leverages VS Code's native secure storage API (which uses OS-level encryption: Windows Credential Manager, macOS Keychain, Linux Secret Service) to store credentials, preventing plaintext exposure and cross-extension credential leakage. This is more secure than custom encryption schemes and integrates seamlessly with the OS's native credential management.
vs alternatives: More secure than storing credentials in plaintext settings.json because it uses OS-level encryption, and more integrated than external credential managers (1Password, LastPass) because it uses VS Code's native API without requiring additional tools, though it lacks the advanced features of dedicated credential managers.
multi-provider ai model configuration and switching
Allows users to configure and switch between multiple AI service providers (OpenAI, Alibaba Qwen, and others) via the command palette command `SVN: 配置AI服务`. Each provider requires a user-supplied API key, which is encrypted and stored in VS Code's secure storage API (OS-level encryption on Windows/macOS/Linux). The extension maintains per-provider configuration, enabling users to test different models or switch providers based on cost, latency, or compliance requirements without re-configuring the entire extension.
Unique: Uses VS Code's native secure storage API (which leverages OS-level encryption: Windows Credential Manager, macOS Keychain, Linux Secret Service) to encrypt API keys, preventing other extensions from accessing credentials. Supports multiple concurrent provider configurations, allowing users to switch providers without re-entering keys, and maintains per-provider settings independently.
vs alternatives: More secure than storing API keys in plaintext settings.json because it uses OS-level encryption, and more flexible than single-provider tools like GitHub Copilot because it supports OpenAI, Qwen, and extensible providers, though it lacks the automatic provider selection logic of frameworks like LangChain.
per-repository authentication credential management
Manages SVN repository credentials at the granularity of individual repository URLs (e.g., `http://svn.company.com/projects/projectA/trunk`), allowing users to store different usernames and passwords for different SVN servers or projects. Credentials are encrypted via VS Code's secure storage API and automatically injected into SVN command invocations when accessing the corresponding repository. Users can configure, update, and clear credentials via command palette commands (`SVN: 管理认证信息`, `SVN: 清除认证信息`).
Unique: Implements per-repository credential isolation by mapping repository URLs to encrypted credentials in VS Code's secure storage, then automatically injecting the correct credentials into SVN CLI invocations based on the target repository URL. This eliminates the need for users to manually enter passwords or configure SVN's built-in credential caching, and prevents credential leakage across repositories.
vs alternatives: More granular than SVN's built-in credential caching (which stores credentials globally) because it isolates credentials per repository URL, and more secure than storing credentials in plaintext `.svn/auth` files because it uses OS-level encryption, though it lacks the advanced features of credential managers like HashiCorp Vault or AWS Secrets Manager.
svn checkout with progress tracking and cancellation
Initiates SVN checkout operations from a user-specified repository URL and displays real-time progress feedback in the VS Code UI. The extension invokes the native `svn checkout` command, captures stdout/stderr, and streams progress updates to the user. Users can cancel ongoing checkouts via a UI button (⏸️ symbol), which terminates the SVN process. The extension locks related UI operations during checkout to prevent accidental concurrent operations ("界面锁定保护" — interface lock protection).
Unique: Integrates SVN checkout directly into VS Code's workflow by capturing native `svn checkout` output and streaming it to the VS Code output panel, with UI-level locking to prevent concurrent operations. This eliminates the need to switch to the terminal or TortoiseSVN, keeping users in the IDE context.
vs alternatives: More integrated than command-line `svn checkout` because it provides progress visibility and cancellation within the IDE, but less feature-rich than TortoiseSVN because it lacks resume capability and detailed progress estimation.
+5 more capabilities