如何分割和编辑补丁?

如何分割和编辑补丁?

有时我需要将一个大补丁分成较小的(不相交的)补丁,例如对于包含的每个单独的功能。

通常我通过标准 vim yank/dd 命令和分割窗口切换来完成此操作。

但是有没有一些工具/vim 技巧可以帮助进行此类编辑?

例如支持以下命令:将下一个完整的 3 个块移动到右侧打开的补丁文件

答案1

您可能想看看 patchutils [1]。对于 vim 部分,我编写了一个小的 vim 插件,可以帮助在补丁中导航:diff_navigator [2]。

[1]http://cyberelk.net/tim/software/patchutils/

[2]http://www.vim.org/scripts/script.php?script_id=2361

答案2

我想有点偏离主题,但我仍然认为它很有用。

如果您使用 git 进行开发,您可以轻松地将整个更改分成更小的“块”,每个块包含一个功能。您最终会对每个功能进行一次提交,并且可以使用 gitgit-format-patch创建(甚至签名和正确属性)补丁,我概述了如何做到这一点这里

答案3

我的 Suse 有splitdiffutil,其工作原理如下:

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002

答案4

您可以使用将大补丁拆分为较小的块(每个文件或每个块),然后如果需要合并,则使用来自补丁工具中提到的包彼得·乌泽尔的回答

相关内容