前言¶
在 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切换到不同的分支。
注意事项¶
- 搁置功能限制:插件启动时会检测
svn help是否包含shelve子命令。TortoiseSVN 自带的svn.exe(版本 ≤ 1.14.x)不包含该命令,此时“搁置”面板会显示提示并禁用相关按钮。改用上游 Apache Subversion 官方二进制(含 shelve)后可恢复正常。 - 宿主依赖:必须先安装并启用
dsh-better-sidebar宿主插件才能运行此插件。 - 权限与安全:插件以当前
dsh进程的权限运行,安装前请检查源码与许可证(MIT)。