【转】diff和patch
这个看到 真的感觉眼前一亮
1.diff命令
$ diff -u hello world > diff.patch
2.patch命令
$ cp hello world
$ patch world < diff.patch
3.两者结合 源码升级
假设program-1.0目录中为老版,现开发完成的新版位于program-2.0目录中,将两个目录置于同一父目录下,然后在该父目录上执行:
$ diff -Nur program-1.0 program-2.0 >program-2.0.patch
将生成一个program-2.0.patch的补丁文件,发布该补丁文件(当然可以先压缩成bzip2格式)。
假设拿到的是program-2.0.patch.bz2文件,则在program-1.0目录同级执行:
$ bzcat program-2.0.patch.bz2 | patch -p0
如此即完成了从1.0到2.0的升级。
如果希望恢复到原版本,可以使用-R(--reverse)参数,但仅对上下文格式的diff文件有效。还有一个备份参数也可以使用,但简单应用中,整个目录备份可能更方便一些。