我有类似的东西
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
<
---
我相信这是使用源树中的diff命令创建的。我想要的是使用该输出创建补丁,并将相同的更改应用于我的源树。
答案 0 :(得分:69)
我相信diff -u oldfile newfile > a.patch
用于创建补丁文件,虽然也可以投入其他一些切换(-N?)。
编辑:好的,4年后,最后解释这些开关的含义:
-u
创建Unified差异。统一差异是补丁程序期望作为输入获得的那种差异。您还可以在u
(最小3,默认3)之后指定一个数字,以增加输出的行数。这是因为3行不够独特,无法精确定位程序中的一个点。
-N
将缺席文件视为空,这意味着如果其中一个文件为空,它将产生大量额外内容(或参见下一点)。
此外,newfile
和oldfile
都可以是目录而不是单个文件。您可能希望-r
参数可以递归任何子目录。
答案 1 :(得分:14)
如果你想获得与SVN diff相同的补丁输出,给定两个不同的文件:
diff -Naur file1.cpp file2.cpp
答案 2 :(得分:2)
你所拥有的是一种非统一的差异。补丁可以读取它,但无法进行上下文匹配,更容易出错。
答案 3 :(得分:1)
是一个(部分)补丁文件,但如果他们为你提供统一的差异输出会更好。
该补丁的主要问题是它没有提到正在修改哪些文件,并且由于没有提供上下文,文件必须完全,补丁将无法允许文件中的细微变化。
答案 4 :(得分:0)
将原始文章中的差异复制到名为test.patch
的补丁文件中,然后运行
patch <original file> test.patch
@Sparr和@Arafangion指出,如果您具有用于创建原始差异的确切原始文件,则此方法最有效。