57

有没有办法列出 CVS 中两个标签之间更改的所有文件?

每次我们发布一个版本时,我们都会为该版本中的所有文件应用一个标签。我想查找在版本之间更改的所有文件。

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

4

7 回答 7

35

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

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

whereRELEASE_1_0RELEASE_1_1是标签的名称。

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

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

希望能帮助到你;)

于 2008-09-26T14:27:06.853 回答
24

我更喜欢使用rdiff-s选项

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

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

于 2008-10-17T17:00:05.207 回答
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

于 2010-02-26T16:24:30.783 回答
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-69以及V-1-0-70您正在比较的修订版。

于 2009-10-26T00:44:27.277 回答
8
cvs log -d ">=DATE" -N -S -R > cvs.log
于 2010-07-11T10:08:02.067 回答
4

DLira 的方法给出了很多细节,包括所有的变化。

要获取文件列表,可以这样做:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
于 2008-09-26T14:36:59.637 回答
1

我为此找到的最好的工具是一个名为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

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

于 2008-09-26T15:18:35.873 回答