dsh-svn-plugin: DeepSeek Harness 的 SVN 版本控制面板

前言

在 Web 端开发时,如果项目仍在使用 SVN 进行版本管理,通常需要在终端执行 svn 命令。DeepSeek Harness 提供了基于浏览器的集成开发环境,但缺乏原生的 SVN 管理面板。dsh-svn-plugin 插件通过在 dsh-better-sidebar 右侧边栏注入独立 Tab,将 Git 面板同款的交互体验带到 SVN 工作副本上,覆盖从状态查看到分支管理的核心流程。

插件定位

这是一个面向 DeepSeek Harness Web GUI 的 SVN 管理插件,由 JinRyu-online 维护。它以独立 Tab 的形式嵌入 dsh-better-sidebar 右侧边栏,旨在解决 Web 环境下 SVN 操作不便的问题,并提供与 Git 面板一致的视觉风格和交互体验。

核心功能

插件实现了 SVN 的基础操作与高级功能,主要通过以下面板实现:

  • 本地修改面板:基于 svn status --xml 生成状态树。界面采用 Git 面板风格,将文件分为“更改”、“未版本化”、“已忽略”三个分组。支持字母徽章(M/A/D/C 等)与图标操作,支持分组与目录折叠。
  • 提交与更新:底部提供提交栏,支持通过 Ctrl+Enter 提交,选择文件后未版本化文件会自动执行 svn add。支持 svn update、svn revert 和 svn cleanup。
  • 代码对比:支持工作副本与 BASE(基准版本)或指定版本区间的差异对比,使用彩色 unified 渲染格式。
  • 历史记录:基于 svn log --xml -v,以 Git 风格展示历史行。选中提交后,详情区悬浮固定在底部,列表独立滚动。点击变更文件可展开该文件的单文件 Diff(支持 A/M/D 变更类型,红色高亮删除,绿色高亮新增)。
  • 搁置(Shelve):支持 svn shelve、unshelve、shelve-delete 和 shelve --list。此功能用于在提交前暂存未完成的修改。
  • 冲突解决:支持 svn resolve --accept working 等命令,用于解决版本冲突。
  • 代码标注:支持 svn blame,逐行标注版本号与作者信息。
  • 分支与标签:支持 svn copy 创建分支、svn switch 切换分支、svn merge -r a:b URL 进行合并。
  • 仓库浏览:支持 svn list 浏览远程目录树,并提供检出功能。
  • 属性与分组:支持查看和修改 svn:ignore 等属性,支持 ChangeList 分组提交以及文件的 lock / unlock 操作。
  • Agent 工具:插件向 Agent 注入了可直接调用的工具,包括 svn_status、svn_log、svn_diff、svn_commit、svn_update、svn_revert、svn_add、svn_shelve、svn_unshelve、svn_shelve_list 和 svn_blame。

依赖条件

运行此插件需要满足以下环境要求:

依赖项 版本要求/说明
DeepSeek Harness (DSH) 0.1.0-rc.8+
dsh-better-sidebar ≥ 0.14.0(必须安装,提供宿主服务)
系统 SVN 客户端 任意版本(含 1.14.x)
Node.js 与 DSH 宿主一致(仅开发构建时需要)

UI 风格说明:与 dsh-better-sidebar 的“源代码管理”面板共用同一套 DSW 设计 token(颜色、字体)与图标。

安装与启用

通过 DeepSeek Harness 的插件命令行安装:

# 安装插件
dsh plugin --profile web add dsh-svn-plugin

安装完成后,重启 dsh web 宿主进程,并在浏览器中执行硬刷新(Ctrl+Shift+R),侧边栏中会出现“SVN”Tab。

典型用法

  • 查看状态:点击 SVN Tab,查看本地工作副本的更改状态树。
  • 管理忽略规则:在“本地修改”面板中,未版本化文件会自动根据工作目录下的 .gitignore 规则归入“已忽略”分组。
  • 暂存修改:在“搁置”面板中暂存当前修改,待完成后再恢复。
  • Agent 操作:在 Agent 对话中,可以直接调用 svn_status 获取状态,或调用 svn_log 查看历史。
  • 分支切换:在“分支”面板中执行 svn switch 切换到不同的分支。

注意事项

  1. 搁置功能限制:插件启动时会检测 svn help 是否包含 shelve 子命令。TortoiseSVN 自带的 svn.exe(版本 ≤ 1.14.x)不包含该命令,此时“搁置”面板会显示提示并禁用相关按钮。改用上游 Apache Subversion 官方二进制(含 shelve)后可恢复正常。
  2. 宿主依赖:必须先安装并启用 dsh-better-sidebar 宿主插件才能运行此插件。
  3. 权限与安全:插件以当前 dsh 进程的权限运行,安装前请检查源码与许可证(MIT)。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜