Introduction

When developing on the web, if a project still uses SVN for version control, you usually need to run svn commands in the terminal. DeepSeek Harness provides a browser-based integrated development environment, but lacks a native SVN management panel. The dsh-svn-plugin injects an independent Tab on the right sidebar of dsh-better-sidebar, bringing the same interactive experience as the Git panel to SVN working copies, and covering the core workflow from status inspection to branch management.

Plugin Positioning

This is an SVN management plugin for the DeepSeek Harness Web GUI, maintained by JinRyu-online. It is embedded as an independent Tab in the right sidebar of dsh-better-sidebar, aiming to solve the inconvenience of SVN operations in Web environments and provide a visual style and interaction experience consistent with the Git panel.

Core Features

The plugin implements basic and advanced SVN operations, mainly through the following panels:

  • Local Changes Panel: Generates a status tree based on svn status --xml. The UI follows the style of the Git panel and divides files into three groups: “Changed,” “Unversioned,” and “Ignored.” It supports letter badges (M/A/D/C, etc.) and icon actions, as well as grouping and directory collapsing.
  • Commit and Update: A commit bar is provided at the bottom, supporting commit with Ctrl+Enter. When files are selected, unversioned files are automatically added via svn add. It supports svn update, svn revert, and svn cleanup.
  • Code Comparison: Supports diff comparison between the working copy and BASE (the base version) or a specified revision range, using colored unified rendering format.
  • History: Based on svn log --xml -v, displays history items in a Git-like style. After selecting a commit, the details area is anchored as a floating panel at the bottom, while the list scrolls independently. Clicking a changed file expands a single-file diff for that file (supports A/M/D change types, highlights deletions in red, and highlights additions in green).
  • Shelve: Supports svn shelve, unshelve, shelve-delete, and shelve --list. This feature is used to temporarily store unfinished changes before committing.
  • Conflict Resolution: Supports commands such as svn resolve --accept working for resolving version conflicts.
  • Code Annotation: Supports svn blame, annotating line-by-line version numbers and author information.
  • Branches and Tags: Supports creating branches with svn copy, switching branches with svn switch, and merging with svn merge -r a:b URL.
  • Repository Browsing: Supports browsing remote directory trees with svn list, and provides checkout functionality.
  • Properties and Groups: Supports viewing and modifying properties such as svn:ignore, supports grouped commits via ChangeList, and supports lock / unlock operations on files.
  • Agent Tools: The plugin injects directly callable tools for Agents, including svn_status, svn_log, svn_diff, svn_commit, svn_update, svn_revert, svn_add, svn_shelve, svn_unshelve, svn_shelve_list, and svn_blame.

Dependencies

Running this plugin requires the following environment requirements:

Dependency Version Requirement/Description
DeepSeek Harness (DSH) 0.1.0-rc.8+
dsh-better-sidebar ≥ 0.14.0 (must be installed; provides the host service)
System SVN client Any version (including 1.14.x)
Node.js Consistent with the DSH host (required only for development builds)

UI Style Notes: Shares the same set of DSW design tokens (colors, fonts) and icons with the “Source Control” panel in dsh-better-sidebar.

Installation and Activation

Install it using the DeepSeek Harness plugin command line:

# Install plugin
dsh plugin --profile web add dsh-svn-plugin

After installation, restart the dsh web host process and perform a hard refresh in the browser (Ctrl+Shift+R). An “SVN” Tab will appear in the sidebar.

Typical Usage

  • View Status: Click the SVN Tab to view the local working copy’s changed status tree.
  • Manage Ignore Rules: In the “Local Changes” panel, unversioned files are automatically grouped into “Ignored” according to the .gitignore rules in the working directory.
  • Stash Changes: In the “Shelve” panel, temporarily store current changes and restore them later after finishing them.
  • Agent Operations: In an Agent conversation, you can directly call svn_status to get status, or call svn_log to view history.
  • Switch Branches: In the “Branches” panel, execute svn switch to switch to a different branch.

Notes

  1. Shelve Limitations: When the plugin starts, it checks whether svn help includes the shelve subcommand. The svn.exe bundled with TortoiseSVN (version ≤ 1.14.x) does not include this command. In that case, the “Shelve” panel displays a notice and disables the related buttons. Use the official upstream Apache Subversion binaries (including shelve) to restore normal functionality.
  2. Host Dependency: The dsh-better-sidebar host plugin must be installed and enabled before this plugin can run.
  3. Permissions and Security: The plugin runs with the permissions of the current dsh process. Please review the source code and license (MIT) before installation.