有没有办法列出 CVS 中两个标签之间更改的所有文件?
每次我们发布一个版本时,我们都会为该版本中的所有文件应用一个标签。我想查找在版本之间更改的所有文件。
如果我能找到在两个日期之间发生变化的所有文件,它也会起作用。
有没有办法列出 CVS 中两个标签之间更改的所有文件?
每次我们发布一个版本时,我们都会为该版本中的所有文件应用一个标签。我想查找在版本之间更改的所有文件。
如果我能找到在两个日期之间发生变化的所有文件,它也会起作用。
我想这个命令会有所帮助:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
whereRELEASE_1_0
和RELEASE_1_1
是标签的名称。
您可以在此处找到有关 cvs diff 命令的更多信息
另外,创建一个脚本以使报告更适合您的需求应该相当简单,例如:更改的文件数量,创建的删除等。据我所知,最常见的 cvs GUI 工具(wincvs 和 tortoise)不提供任何东西像这样开箱即用。
希望能帮助到你;)
我更喜欢使用rdiff
和-s
选项
cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs
rdiff
不需要沙箱;-s
为您提供更改的摘要。
使用 CVS 获取两个日期之间的文件列表:
cvs diff -N -c -D YYYY-MM-DD -D YYYY-MM-DD | grep "Index:" > diff.out
有关 -D 标志的接受日期的更多信息:http: //docs.freebsd.org/info/cvs/cvs.info.Common_options.html
要使用标准 cvs 命令获取在一个版本和另一个版本之间发生更改的文件列表:
cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
或者,要获取提交评论列表,只需删除-R
:
cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
您替换的位置V-1-0-69
以及V-1-0-70
您正在比较的修订版。
cvs log -d ">=DATE" -N -S -R > cvs.log
DLira 的方法给出了很多细节,包括所有的变化。
要获取文件列表,可以这样做:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
我为此找到的最好的工具是一个名为cvs2cl.pl的 perl 脚本。这可以生成几种不同格式的更改列表。它有许多不同的选项,但我使用了这样的标签到标签选项:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
或者
cvs2cl.pl --delta dev_release_1_2_3:HEAD
我还使用相同的工具使用日期进行了比较。