Chinaunix首页 | 论坛 | 博客
  • 博客访问: 174374
  • 博文数量: 44
  • 博客积分: 2762
  • 博客等级: 少校
  • 技术积分: 520
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-04 19:19
文章分类
文章存档

2011年(28)

2010年(16)

我的朋友

分类: LINUX

2011-03-04 12:05:05

目的:
当源程序大范围改动之后,而且不通过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



参考:
~fuku/tips/makepatch/





阅读(1144) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-27 19:01:51

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com