如何分割和编辑补丁?


10

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

通常,我通过标准的vim yank / dd命令和拆分窗口切换来执行此操作。

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

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



1
顺便说一句,人们为什么回答这个问题,却发现它没有足够的有用性/清楚性来支持它?;)
maxschlepzig,2010年

Answers:


7

您可能想看看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


1
diff_navigatorURL显然是vim.org/scripts/script.php?script_id=2361 的Emacs有相似特性Ediff和SMerge模式
里卡尔多·穆里

2
您能否扩展答案以使其更全面?添加一个示例,如何使用来自patchutils集中的哪个实用工具将一个大补丁拆分为不相交的补丁,将是很棒的……
maxschlepzig 2011年

5

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

如果使用git进行开发,则可以轻松地将全部更改分解为较小的“大块”,每个小块都包含一个功能。您最终会为每个功能提交一次提交,并且可以使用git git-format-patch来创建(甚至签名并正确分配属性)补丁,我在此处概述了如何执行此操作


3

我的Suse具有splitdiffutil,其工作方式如下:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.