目的:
当源程序大范围改动之后,而且不通过CVS进行check in管理(将来的某一天,这些变更点也许被放弃)。
又能在每次check out后,可把变更部分,实施到刚刚新chekout的软件中。
可以利用patch文件,每次利用这个patch将变更部分,追加到新source中。
(当然patch文件自身也可加checkin到CVS上作为单独文件管理;并也追加到Makefile工程中,每次编译时执行)
相关命令:
patch 和 diff
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 < ../patchfile
或者
$ cd ~/project/olddir/
$ cat ../patchfile | patch