使用diff的输出来创建补丁

Edu*_*rdo 40 diff patch

我有类似的东西

src/sim/simulate.cc
41d40
< #include "mem/mem-interface.h"
90,91d88
<             dram_print_stats_common(curTick/500);
<
src/mem/physical.hh
52d51
<   public:
55,56d53
<       public:
<
58a56,57
>       public:
>
61,62c60,61
<         virtual bool recvTiming(PacketPtr pkt); //baoyg
<
---
Run Code Online (Sandbox Code Playgroud)

我相信这是使用源树中的diff命令创建的.我想要的是使用该输出创建补丁,并将相同的更改应用于我的源树.

Pow*_*ord 71

我相信它diff -u oldfile newfile > a.patch用于创建补丁文件,虽然也可能会抛出其他一些切换(-N?).

编辑:好的,4年后,最后解释开关的含义:

-u创建一个统一差异.统一差异是补丁程序期望作为输入获得的那种差异.您还可以在u(最小3,默认3)之后指定一个数字,以增加输出的行数.这是因为3行不够独特,无法精确定位程序中的一个点.

-N 将缺席文件视为空,这意味着如果其中一个文件为空(或参见下一点),它将产生大量额外内容.

此外,newfileoldfile既可以是目录,而不是单个文件.你可能希望这个-r参数能够递归到任何子目录.


And*_*nko 15

如果你想获得与SVN diff相同的补丁输出,给定两个不同的文件:

diff -Naur file1.cpp file2.cpp