rdiff—发行版之间 'patch' 格式的差异

  • rdiff [-flags] [-V vn] (-r tag1[:date1] | -D date1) [-r tag2[:date2] | -D date2] modules...
  • 需要: 仓库。
  • 修改: 无。
  • 同义词: patch

创建两个发行版之间的 Larry Wall 格式的 patch(1) 文件,它可以直接用于 patch 文件,让旧发行版更新到新发行版。(此为仅有的直接操作仓库的 cvs 命令之一,而不需要事先检出。) diff 的输出发送到标准输出设备上。

你可以指定(采用标准的 `-r' 和 `-D' 选项)任何一个、两个修订版或日期的组合。如果指定一个修订版或日期,patch 反映的是此修订版或日期与当前 rcs 文件中最新修订版之间的差异。

注意,如果软件发行版影响多个目录,那么在给旧源码打补丁的时候,需要给 patch 命令指定 `-p' 选项,让 patch 找到处于其他目录中的文件。

 

rdiff options

rdiff 支持的标准选项(参阅 Common options,了解完整说明):

-D date
使用不迟于 date 的最新修订版。
-f
如果没有匹配的修订版,获取最新的修订版(而不是忽略这些文件)
-k kflag
通过 kflag 处理关键字。参阅 Keyword substitution
-l
只在当前目录,不传递到子目录。
-R
递归方式检查。此为默认选项。
-r tag
使用 tag 修订版,或者当 date 指定,并且 tag 是分支标签,分支 tag 上的版本可以当作是在 date 上。见 Common options

另外还支持以下选项:

-c
使用上下文 diff 格式。此为默认。
-s
创建更新总结报告,而不是补丁。总结中包括两个发行版间文件修改和添加的信息。它会被发送到标准输出设备。它的用处在于,例如,找出两个日期或发行版间有哪些文件被改动。
-t
两个修订版的顶端的差异,发送到标准输出设备。这对于查看文件最后的修改很有用。
-u
上下文差异中使用 unidiff 格式。记住,旧版本的 patch 程序不能处理 unidiff 格式,所以,如果打算将补丁发到网上,不该使用 ` -u'。
-V vn
按照当前 rcs 版本 vn 的规则(扩展格式在 rcs 版本 5 做了修改) 扩展关键字。注意此选项不再使用。 cvs 只按 rcs 版本 5 的方式扩展关键字。

 

rdiff 示例

假设你收到 foo@example.net 发来的邮件,索取 tc 编译器从 1.2 到 1.4 发行版的更新。你手头上没有这个补丁,但使用 cvs 可以用一个命令很容易得到:

     $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
     $$ Mail -s 'The patches you asked for' foo@example.net

假如你生成了发行版 1.3,并为修复 bug 建立了 `R_1_3fix' 分支。以前还为发行版 1.3.1 建立 `R_1_3_1'。现在,你想了解分支上做了多少开发工作。可以用这个命令:

     $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
     cvs rdiff: Diffing module-name
     File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
     File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
     File bar.h,v changed from revision 1.29.2.1 to 1.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值