鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-svn-tools

SVN(Subversion)工具集:33 个 agent 工具(status/diff/log/blame/commit/merge/props/lock/changelist 等),以及带 BASE/工作副本左右对比、冲突解决与 AI 提交日志的侧边栏面板。

代码评审
访问 GitHub
文档README

dsh-svn-tools

⚠️ 前置条件(必读):本插件的侧边栏 UI 依赖 dsh-better-sidebar。请先安装并启用它:

▼
sh
复制代码
dsh plugin --profile web add dsh-better-sidebar

并确认 profile package.json 的 dsh.profile.bundles 包含 dsh-better-sidebar(列在 dsh-svn-tools 之前)。 未安装时:本插件的 preinstall 检查会中止安装(需放行构建脚本,见「安装」);即使绕过检查强行安装,侧边栏「SVN」分页也不会注册(浏览器控制台会输出同样的指引,不会崩溃)。 33 个 svn_* agent 工具不依赖它,可独立使用。

SVN (Subversion) 工具 + 侧边栏 UI 插件,为 DeepSeek Harness 提供:

Agent 工具(33 个)

分类工具
状态/信息svn_status(含 changelist 分组)svn_info
差异/历史svn_diff svn_log svn_blame(逐行追溯)
仓库浏览svn_list svn_cat(不带工作副本直接看仓库)
变更操作svn_add svn_delete svn_mkdir svn_copy(分支/标签)svn_move svn_revert
提交svn_commit(中文 UTF-8 日志)
更新/检出svn_update svn_checkout svn_switch svn_relocate svn_upgrade
冲突/清理svn_resolve(mine/theirs/base/working)svn_cleanup
属性svn_propget svn_propset svn_proplist svn_propdel(svn:ignore 等)
分支/合并svn_merge svn_mergeinfo
锁定svn_lock svn_unlock(UE 二进制资产友好)
分组svn_changelist(set/remove/list)
其他svn_import svn_export svn_patch

所有写操作使用 --non-interactive;中文消息/属性值统一走 UTF-8 临时文件 + --encoding utf-8。

侧边栏 UI(dsh-better-sidebar 的 svn 分页)

  • 仓库信息:URL、当前 revision、刷新
  • 变更:状态列表(徽标 + changelist 标签),单击文件行=选中高亮;行悬停出现「比对」按钮(单击即查看 diff),双击行同样进入 diff;左键按下并拖动=框选多行(框选只加高亮、不动勾选,松手后点击组内任一行身、或勾选/取消组内任一行的复选框,都会把该行的勾选状态同步给整组——组同步在单击后延迟约 0.25s 执行,双击进比对时自动取消,不会误翻转整组勾选);左右版本对比视图(左列版本库 BASE、右列工作副本,等宽双栏 + 自动换行永不截断,红/绿高亮增删行,可切回文本 diff);差异导航:对比视图顶部提供「◀ 上一处 / 下一处 ▶」(上一处差异 / 下一处差异)在差异块间跳转,自动滚动文本使选中差异块进入可视区(块可放下时居中)并高亮,附 当前位置/总数 计数;导航条吸顶固定,滚动时不会被顶出视野;差异块操作:悬停任意差异块可选择「采用左侧 / 采用右侧 / 都保留·左先 / 都保留·右先」直接修改工作副本文件;行内操作(中文按钮):
    • 比对:查看该文件差异(悬停行出现;双击行亦可)
    • 添加(未版本化)、删除、还原(确认弹窗)
    • 追溯:逐行追溯视图
    • 解决(冲突 C 状态):弹窗选择 我的版本 / 仓库版本 / 基准版本 / 保留当前
    • 忽略(未版本化):快捷写入 svn:ignore
  • 提交:勾选文件或提交全部、中文日志(✨ AI 生成日志 用当前模型自动生成)、提交后显示新 revision;提交范围上下联动:下方「提交全部变更」勾上→上方所有可见文件全部勾选、取消→全部取消勾选;在列表勾选任一文件自动转「按所选提交」,取消最后一个勾选后停在「未勾选任何文件」(提交禁用,不再自动跳回提交全部);AI 生成日志只分析提交范围内的文件(提交全部=全部可见变更;只勾部分=仅这些文件;未勾选文件不进分析),范围内为空时按钮禁用;新增「显示无版本控制的文件」选项(默认勾选):取消勾选后 ? 状态文件从列表隐藏,并排除出「提交全部变更」与 AI 分析(不会自动 add/提交),! 缺失文件不受影响、仍自动删除;自动处理构建产物替换(未版本化 ? 文件自动 svn add、缺失 ! 文件自动 svn delete,提交全部时对所选目录一并生效,结果在提示栏显示);变更列表工具栏批量操作:列表顶部工具栏右侧按勾选情况显示「删除 / 回退」两个按钮(与行内按钮同语义、作用于全部勾选文件,未版本化 ? 与冲突 C 文件不计入;无勾选时不显示;单次确认 + 执行后清空勾选,避免残留勾选泄漏进提交范围)
  • 历史:log 列表(首屏最近 30 条;列表底部「加载更早的版本」按钮逐页追加更早记录直到 r1,追尽后按钮变为「已显示全部 N 条历史」);点击版本 → 上下分栏(上栏列表、下栏该版本日志与变更路径,分隔条可拖动调整比例);悬停「比对」按钮单击,或双击文件路径 → 该版本与上一版本(rN vs rN-1)的只读左右对比(复用「变更」对比视图,中文/特殊字符路径走仓库 URL 编码读取);详情文件列表常显勾选框(无单选/多选切换,始终多选),单击文件行=选中高亮,左键拖动框选 + 点击组内任一行身或该行复选框可把整组勾选状态同步(与提交页列表交互一致);行悬停出现与提交页对齐的右侧按钮组(比对 / 撤销 rN 改动 / 回退到修改前 / 退回到此版本,向右对齐;这些操作只修改工作副本、不会自动提交,文件会以 M/A/D 重新出现在「提交」页由你自行提交):
    • 撤销 rN 改动:svn merge -r rN:rN-1 反向合入工作副本该文件——典型场景(工作副本即 rN 或该文件 rN 后未再改动)下文件即恢复为它被修改前的内容;rN 之后的改动保留;文本可能产生冲突标记、二进制可能报冲突(可走「提交」页「解决」);新增类文件正确调度为计划删除、删除类文件计划恢复
    • 回退到修改前:用该文件上一次修改修订的仓库内容(svn cat 流式写入临时文件,任意大小的二进制均支持)精确覆盖工作副本文件——rN 之后对该文件的改动与本地未提交修改会被丢弃;rN 新增的文件改为删除该文件、rN 删除的文件恢复并计划添加;当工作副本该文件的 BASE 恰好就是「修改前版本」时直接用本地 pristine 还原(svn revert),无需联网下载
    • 退回到此版本:用该文件在 rN(此版本)的内容覆盖当前工作副本文件——rN 之后改动与本地未提交修改被丢弃;rN 删除的文件从工作副本删除、rN 新增的文件写入 rN 内容并计划添加;工作副本 BASE 恰为 rN 时本地 svn revert 还原,无需联网;r1 版本行仅显示此按钮
    • 执行行高亮:单文件执行(或多选逐个执行)时,正在执行的文件行高亮 + 行内 spinner,执行完成自动恢复
    • 多选批量工具栏:分隔条下方工具栏左侧常显「全选/清空」(文件行勾选框常显,无单选/多选切换;也可左键拖动框选,再勾选/点击组内任一行身把该行勾选状态同步给整组——与提交页列表一致);右侧按勾选情况显示「撤销 rN 改动 / 回退到修改前 / 退回到此版本」批量按钮——无勾选时不显示;含 r1 行时撤销/回退不显示。批量操作为单次确认 + 逐文件串行执行(避免工作副本锁冲突),失败文件记录并继续,结束时汇总成功/失败;切换版本详情自动清空勾选
  • 工具栏:分支(列出 branches 并切换)、清理(svn cleanup)、更新
  • 检出引导:目录不是工作副本时自动显示 checkout 表单

所有操作经服务端 /svn/api/* 路由执行(同源 fence 鉴权,session 工作副本解析),与 agent 工具共用同一套执行核心。

安装

  1. 先安装前置插件(如未安装):

    ▼
    sh
    复制代码
    dsh plugin --profile web add dsh-better-sidebar
  2. 再安装本插件:

    ▼
    sh
    复制代码
    dsh plugin --profile web add file:./plugins/dsh-svn-tools

    并确保 package.json 的 dsh.profile.bundles 中包含 dsh-svn-tools。重启 dsh web 后生效。

启用安装时前置检查(preinstall 门禁)

pnpm 10 默认阻止依赖包的生命周期脚本。要让「未安装 dsh-better-sidebar 时中止安装」的 preinstall 检查真正生效,需在 profile 目录放行一次构建脚本(任选其一):

  • 交互式:在 profile 目录执行 pnpm approve-builds,批准 dsh-svn-tools;

  • 或直接在 profile 的 pnpm-workspace.yaml 中加:

    ▼
    yaml
    复制代码
    onlyBuiltDependencies: - dsh-svn-tools

未放行时安装仍会成功,但 pnpm 会打印 Issues with peer dependencies found(peerDependencies 声明)警告,且侧边栏分页不会注册(运行时守卫兜底,不崩溃)。有意跳过检查可设置环境变量 DSH_SVN_TOOLS_SKIP_SIDEBAR_CHECK=1。

前提

  • svn 命令行客户端在 PATH 中(Windows 上为 svn.exe)。
  • dsh-better-sidebar 已安装并启用(侧边栏 UI 硬依赖;安装时 preinstall 会检查 dsh.profile.bundles)。
  • 输出解码:优先 UTF-8,失败回退 GBK(中文 Windows 控制台)。
代码评审

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:zengweicheng666/dsh-svn-tools

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-code-review
提供 /review、/review-status 和 /review-cancel,用独立原生子 Agent 审查所选 Git 范围(基准分支、未提交更改、某次提交或自定义要求),并把发现报告返回当前会话;报告语言跟随宿主 locale,支持中英文。
AgentsGitFlowController
AI 编码智能体分支角色守卫:可配置集成/预览/生产/归档角色,拦截对受保护分支的直接推送、强推与删除,以及智能体对生产/归档分支的合并。
dsh-github-mcp-hint
GitHub MCP 辅助面板:在「设置 → 插件 → GitHub MCP」展示可复制的示例提示(30 条示例池随机 4 条)、可视化公开仓库的星/fork/语言,并提供 gh_repo_stats / gh_current_user 模型工具。
dsh-github-mcp
把 GitHub 官方远程 MCP server 封装为 DSH 插件:PAT 存入 DSH 凭据中心(.credentials.yaml),提供 github_set_token / github_token_status 模型工具,GitHub 工具以 mcp__github__* 形式可用。
source-code-mgmt
DSH 网页界面的代码管理面板,五步搞定 Git 日常:① 环境检查自动检测 git/gh/ssh,缺工具一键安装(gh 支持镜像下载源加速,Windows 也可用)并带检查更新;② SSH ed25519 密钥生成/连接测试 + 一键写 443 配置绕过 22 端口封锁,Gitee 私人令牌在此配置;③ 查看仓库状态、并排 diff、暂存提交、切换分支、查看/回滚历史,一键新建仓库并推送,自动忽略超 100MB 文件;④ 列出账号名下所有远程仓库一键克隆;⑤ 五步发布 npm 包。支持 GitHub / Gitee 双平台,界面中英文跟随 DSH 设置实时切换。