DSH Plugins
返回列表
⚙️

apply-patch

工作流 更新于 2026.08.25

在终端中运行以下命令:

dsh plugin install JohnXu22786/apply-patch

将以下提示词粘贴到 DeepSeek Harness 对话框中:

在 DeepSeek Harness 中执行 dsh plugin install JohnXu22786/apply-patch 即可安装该插件,完整源码见 https://github.com/JohnXu22786/apply-patch 。

插件介绍

DeepSeek Harness 自带字符串级别的编辑与写入工具,却始终缺少一个能将 git 格式 unified diff 真正提交到磁盘的结构化补丁应用器。apply-patch 填补了这一空白:零运行时依赖,自实现解析器覆盖多文件、多 hunk、增删、重命名、复制、模式变更、index SHA、/dev/null 创建/删除、二进制标签、含空格路径以及经典 ---/+++ 裸补丁。每个 hunk 头在解析时即与正文行数交叉校验,截断或损坏的补丁会立即报错并指出具体行号,杜绝静默错误应用。

写入路径严格全或无。所有文件先在内存中完成解析、读取与变换,任何 hunk 冲突或结构违规都会在第一个字节落盘前拒绝整个补丁。Hunk 定位分三级递进:锚点精确匹配、全文偏移修正、GNU-patch 风格模糊匹配(仅允许丢弃前导 context 行,删除行必须精确匹配),保证模糊路径永远不会误删内容。每次写入前使用与官方 dsh 文件系统相同的身份配方重新探测,漂移即中止并回滚。反向补丁与回滚日志在首次修改前写入,确保创建、删除、重命名、复制、权限变更均可字节级复原。

插件在 harness 工具注册表上直接暴露四个工具:patch_apply 原子应用并记录回滚日志、patch_dry_run 静态冲突报告不落盘、patch_reverse 生成经验证的反向补丁、patch_stat 汇总文件与 hunk 行数。如果你的 dsh 工作流经常消费 git format-patch 输出、CI 生成的 unified diff、或手写多文件补丁,且目标涉及 CRLF/LF 混用、含空格路径或二进制标签文件,apply-patch 提供从 diff 文本到已验证文件系统状态的单步、零依赖通道。

使用场景

  • 将 CI 生成的 unified diff 在 dsh 工作流中批量原子应用到本地代码库
  • 把模型产出的多文件补丁安全落盘且不破坏 CRLF/LF 混用文件的字节级一致性
  • 在冲突时仅报告预期与实际差异而不触碰磁盘,用于预检 git format-patch 可应用性

适合人员

  • 在 dsh 中频繁消费 git diff 输出的工作流构建者
  • 需要零依赖且可审计补丁链路的工程团队
  • 处理 CRLF/LF 混用、二进制标签或含空格路径等复杂文件的开发者