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

时间:2020-03-06 14:47:10  来源:igfitidea点击:

有什么办法可以列出在CVS中两个标签之间已更改的所有文件?

每次执行发布时,我们都会将标签应用于该发布中的所有文件。我想查找所有版本之间更改的所有文件。

如果我可以找到两个日期之间已更改的所有文件,那么它也将起作用。

解决方案

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

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

其中" RELEASE_1_0"和" RELEASE_1_1"是标签的名称。

我们可以在此处找到有关cvs diff命令的更多信息。

另外,创建脚本以使报告更适合需求应该相当简单,例如:文件数量更改,创建的删除等。据我所知,最常见的cvs GUI工具(wincvs和tortoise)不提供某些功能像这样开箱即用。

希望它能帮助;)

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

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

我更喜欢使用rdiff-s选项

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

rdiff不需要沙箱; -s为我们提供更改摘要。

要获取使用标准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获取两个日期之间的文件列表,请执行以下操作:

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 log -d ">=DATE" -N -S -R > cvs.log