CVS:列出标签(或日期)之间更改的所有文件

时间:2008-09-26 14:11:44

标签: cvs

有没有办法列出CVS中两个标签之间发生变化的所有文件?

每次我们发布版本时,我们都会将标记应用于该版本中的所有文件。我想找到版本之间发生变化的所有文件。

如果我能找到两个日期之间发生变化的所有文件,它也会有用。

7 个答案:

答案 0 :(得分:34)

我想这个命令会有所帮助:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs

其中RELEASE_1_0RELEASE_1_1是您的代码的名称。

您可以在cvs diff命令here

上找到更多信息

加上它应该相当简单,创建一个脚本,使报告更适合您的需求,例如:文件数量已更改,创建已删除等等。据我所知,最常见的cvs GUI工具(wincvs和tortoise)做不提供开箱即用的东西。

希望它有助于;)

答案 1 :(得分:24)

我更喜欢使用rdiff-s选项

cvs rdiff -s  -r RELEASE_1_0 -r RELEASE_1_1 module > diffs

rdiff不需要沙盒; -s为您提供了更改摘要。

答案 2 :(得分:17)

使用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

答案 3 :(得分:11)

使用标准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-69V-1-0-70替换为您要比较的修订版。

答案 4 :(得分:8)

cvs log -d ">=DATE" -N -S -R > cvs.log

答案 5 :(得分:4)

DLira的方法提供了很多细节,包括所有更改。

要获取文件列表,可以使用:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs

答案 6 :(得分:1)

我发现的最好的工具是名为cvs2cl.pl的perl脚本。这可以生成几种不同格式的更改列表。它有许多不同的选项,但我使用了这样的tag-to-tag选项:

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8

cvs2cl.pl --delta dev_release_1_2_3:HEAD

我还使用相同工具对日期进行了比较。