diff和pitch命令解析
diff和patch是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上。在数学上说,diff就是对两个集合的差运算,patch就是对两个集合的和运算。在数学上我们知道:A-B = C,这样我们知道A、B、C中任意两个数就可以得出第三个数;因此这两个命令常用来制作补丁。
假设u-boot-2010.09(A)是官方下载解压缩后的源代码,而u-boot-2010.09-fl2440(B)是针对相应硬件(fl2440)做源代码修改后的代码。这时我们可以使用下面diff命令制作一个补丁文件u-boot-2010.09-fl2440.patch(C);
命令输入:diff -Nuar u-boot-2010.09 u-boot-2010.09-fl2440 > u-boot-2010.09-fl2440.patch
假设现在有A(u-boot-2010.09)和C(u-boot-2010.09-fl2440.patch)通过patch命令即可得到B(u-boot-2010.09-fl2440);
命令输入:patch -p0 < ../u-boot-2010.09.patch
假设现在有B(u-boot-2010.09-fl2440)和C(u-boot-2010.09-fl2440.patch)通过patch命令即可得到A(u-boot-2010.09);
命令输入:patch -R -p1 < ../u-boot-2010.09.patch