在此仅举一个简单的例子来说明如何用diff/patch工具维护源码升级。
假设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的升级。
对于单个文件也一样,
diff -Nur draw1.0.c draw2.0.c > draw_0806.patch
打包时,把draw_0806.patch和draw1.0.c放同一目录,
patch -p0 < draw_0806.patch
注:
patch,是打补丁的命令,有很多用法,见帮助#man patch
patch -p0 (“p”指的是路径,后面的数字表示去掉路径的第几部分。"0",表示不去掉,为全路径)
patch -p1 (“p”后面的数字"1",表示去掉前第一个路径)