如何干净地编辑差异/补丁文件?有没有补丁文件编辑器?

My_*_*ion 28 vim diff patch editor

场景:我有一个可以干净地应用到我的工作文件的补丁文件,但我不想要补丁中的所有更改.

通常,我这样做vim example.patch,删除不需要的更改并适用patch -p0 -i example.patch但有时修补程序不适用,我必须重新开始.

是否有补丁文件编辑器,允许用户编辑和删除补丁的一部分,仍然可以干净地应用?

jkp*_*jkp 18

如果您在emacs中打开diff文件并将编辑器置于"diff"模式,您实际上可以编辑补丁,它将以智能方式更新块标记.对我来说真的很好用!

  • Emacs 还可以将这些块一一应用——您无需删除您不想要的那些。 (2认同)

小智 10

如果你正在寻找一个非交互式解决方案,rediffpatchutils为的帮助.

这是它的man描述:

您可以使用rediff更正手动编辑的统一差异.获取要编辑的差异的副本,然后编辑它而不更改任何偏移或计数(以"@@"开头的行).然后运行rediff,告诉它原始diff文件的名称和你编辑过的文件的名称,它将输出已编辑的diff文件但是有修正的偏移和计数.

提供了一个小脚本,editdiff用于就地编辑diff文件.

当前处理的更改类型包括:

  • 修改任何文件内容行的文本(当然).
  • 添加新行插入或删除.
  • 添加,更改或删除上下文行.通过调整偏移和/或计数来处理上下文范围中的线.
  • 添加一个大块(@@ - 前缀部分).
  • 删除多个大块(@@ - 前缀部分).

根据其描述,recountdiff也可能是修复统一差异的潜在候选者.


小智 0

不要手动编辑补丁文件。对于您的情况,您可以尝试一些交互式工具来逐块应用您的补丁,例如ipatch