有时我需要将一个大补丁分成较小的(不相交的)补丁,例如对于包含的每个单独的功能。
通常我通过标准 vim yank/dd 命令和分割窗口切换来完成此操作。
但是有没有一些工具/vim 技巧可以帮助进行此类编辑?
例如支持以下命令:将下一个完整的 3 个块移动到右侧打开的补丁文件
答案1
您可能想看看 patchutils [1]。对于 vim 部分,我编写了一个小的 vim 插件,可以帮助在补丁中导航:diff_navigator [2]。
答案2
我想有点偏离主题,但我仍然认为它很有用。
如果您使用 git 进行开发,您可以轻松地将整个更改分成更小的“块”,每个块包含一个功能。您最终会对每个功能进行一次提交,并且可以使用 gitgit-format-patch
创建(甚至签名和正确属性)补丁,我概述了如何做到这一点这里
答案3
我的 Suse 有splitdiff
util,其工作原理如下:
$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002