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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值