patch 的制作方法

来源:互联网 发布:单片机控制的智能台灯 编辑:程序博客网 时间:2024/04/19 19:26
目的:
当源程序大范围改动之后,而且不通过CVS进行check in管理(将来的某一天,这些变更点也许被放弃)。
又能在每次check out后,可把变更部分,实施到刚刚新chekout的软件中。

可以利用patch文件,每次利用这个patch将变更部分,追加到新source中。
(当然patch文件自身也可加checkin到CVS上作为单独文件管理;并也追加到Makefile工程中,每次编译时执行)

相关命令:
patch 和 diff

Patch的制作方法:

Patch文件就像大家都知道的那样,是向文件更新其区别点的东西。
适用于,对checkout的文件,实施最新化时使用。
有很多人一直在利用Patch,这里只说做成方法。

■ 多文件的场合(旧文件夹 vs 新文件夹的比较)

~/project/newdir/...               //修改完的文件
         /olddir/...               //修改前的文件

※ ... 表示有很多文件。

构造目录结构时、Ptach文件可以
~/project/patchfile
中,做成。

$ cd ~/project/newdir        
$ diff -aruN ../olddir . > ../patchfile
文件夹 间比较,输出比较结果

■ 单个文件的场合(旧文件 vs 新文件的比较)

仅有一个文件(新旧两版)、

$ cd ~/project
$ diff -c olddir/file newdir/file > patchfile
单个文件 间比较,输出比较结果



■ 实施Patch的场合

$ cd ~/project/olddir/
$ patch -p1 < ../patchfile

或者

$ cd ~/project/olddir/
$ cat ../patchfile | patch

■ 返回修改前(old)文件
 patch -R -p1 < ../patch



参考:
http://www.rouge.gr.jp/~fuku/tips/makepatch/
原创粉丝点击