diff以"行"为单位比较两个文本文件(也可以是目录比较),并将不同之处以某种格式输出到标准输出上;patch可以读入这种输出,并按照一定指令使源文件(目录)按照目标文件(目录)更新。
我们这个地方以u-boot-1.3.2的源代码为例,假设我的工作目录为/jerry.du/bootloader,将u-boot- 1.3.2.tar.bz2解压到该目录,为u-boot-1.3.2, 同时把我修改过的源代码放在同一目录下,为u-boot-1.3.2_my,使用命令diff -Nur u-boot-1.3.2 u-boot-1.3.2_my > u-boot-1.3.2-20080801.patch,这样备份的patch文件就已经生成。参数N表示如果某个文件仅在一个目录中出现,则假定其在另一个目录中为空文件;u表示unified格式,r表示在目录中嵌套使用。其它参数说明看diff命令的man文件(man diff)。
这样备份就完成了,下次以原始的u-boot-1.3.2为基础,进入该目录,patch -p1 < u-boot-1.3.2-20080801.patch就进去到了上次备份文件的状态。更多patch参数说明请看patch命令的man文件(man patch)。
也可以用这种方法把你对某个文件的改动告诉别人,这样你可以少很多改动说明了。
阅读(1420) | 评论(0) | 转发(0) |