前言¶
DSH 的理念是「一切皆插件」。如果在 web 侧边栏里做日常开发,但项目仍然使用 SVN,缺少一个直接查看状态、差异和提交历史的入口会比较麻烦。dsh-better-sidebar-svn 是面向 dsh-better-sidebar 的插件,把 SVN 常用操作放到侧边栏中。
下面介绍它的能力、安装方式,以及使用时需要注意的边界。
这是什么¶
ztyhehe/dsh-better-sidebar-svn 是一个 web 端 DSH 插件,依赖 dsh-better-sidebar >=0.12.0。它为侧边栏新增 SVN 标签页,支持 status、diff、log、commit、update、revert 等常用操作。
该插件由 ztyhehe 维护,使用系统 svn 命令行工具完成实际操作。SVN 命令统一使用 --xml 输出,并以非交互方式执行。许可证为 MIT。
核心功能¶
- 状态面板:变更分「已暂存 / 未暂存」两段显示。
- 文件 Diff:查看差异对比,支持关键词搜索、路径过滤、
n/m计数,以及 Enter / Shift+Enter 上下跳转。 - 暂存式提交:使用 SVN changelist
dsh-commit管理待提交文件,提交时只提交已暂存文件。 - 常用维护:支持
svn update、还原单个文件修改、添加未版本控制文件。 - 忽略规则:读写当前目录的
svn:ignore,规则不递归。 - 提交历史:分页加载,并显示变更文件列表。
- 冲突解决:对冲突文件提供快速解决按钮。
- 降级容错:系统缺失
svn时显示svn-missing提示;面板组件有 ErrorBoundary,渲染异常时显示占位而不是整面板空白。
安装与启用¶
先确认前置条件:
- 已安装
dsh-better-sidebar >=0.12.0 - 系统已安装
svn命令行工具,版本 1.7+ - Node 环境满足
>=20
安装命令如下:
cd ~/.dsh && dsh plugin --profile web add dsh-better-sidebar && dsh plugin --profile web add git+https://github.com/ztyhehe/dsh-better-sidebar-svn.git
这条命令分两步:先添加 dsh-better-sidebar,再添加本插件。构建产物 lib/ 已随仓库提交,通过 git 直接安装时不需要本地构建工具链。
安装后硬刷新浏览器(Cmd/Ctrl+Shift+R),侧边栏中会出现「SVN」标签页。
如果之后需要移除:
cd ~/.dsh && dsh plugin --profile web remove dsh-better-sidebar-svn
典型用法¶
经过上面的步骤,可以在侧边栏中按以下方式使用:
- 打开「SVN」标签页,查看工作副本状态。
- 在状态面板里把文件加入或移出「待提交」列表。
- 点击文件查看 Diff;需要定位时,可用关键词搜索、路径过滤和 Enter / Shift+Enter 跳转。
- 确认暂存列表后执行提交;提交只影响已暂存文件。
- 需要同步远端时使用
svn update;需要还原单个文件修改时执行还原。 - 如果某些本地文件不想加入版本控制,可在忽略规则中维护当前目录的
svn:ignore。 - 在历史区分页查看提交记录,并查看每次提交关联的变更文件列表。
SVN 命令统一带 --non-interactive --no-auth-cache 参数,并以 --xml 输出结果,便于程序解析。
适用场景与注意¶
适合已经使用 DSH web 侧边栏、且项目中存在 SVN 工作副本的场景。它把常用 SVN 操作集中到侧边栏中,便于在浏览器里直接查看状态、差异、历史和变更文件。
注意以下几点:
svn log需要访问仓库服务器,可能产生网络往返;服务端缓存 TTL 为 1 小时。- 忽略规则仅作用于当前目录,不递归到子目录。
- 插件以当前 dsh 进程权限运行,安装前应检查源码、依赖和许可证。
- DSH 社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,不应将其理解为官方应用商店。
资料链接¶
- 目录页:https://www.skillhub.cn/plugins/ztyhehe/dsh-better-sidebar-svn
- GitHub:https://github.com/ztyhehe/dsh-better-sidebar-svn