如何找出哪些CVS标签涵盖哪些文件和路径?

时间:2008-08-26 18:40:27

标签: cvs

有一个传统的CVS存储库,其中包含大量目录,子目录和路径。还有大量的分支和标签,不必覆盖所有路径和标签。文件 - 通常是子集。我怎样才能找出哪个分支/标签涵盖了哪些文件和路径?

CVS日志已经提供了每个文件的标签列表。该任务要求我将其转换为每个标签的文件。我在当前的WinCVS(CVSNT)实现中找不到这样的功能。给定充足的空循环,我可以编写一个Perl脚本来做到这一点,算法并不复杂,但需要完成。

我想有些人需要这些信息并解决了这个问题。因此,我认为应该是一个随时可用的(开源/免费)工具。

6 个答案:

答案 0 :(得分:11)

要列出文件上的标签,我们也可以这样做:

cvs status -v <file>

答案 1 :(得分:7)

要确定哪些标签适用于特定文件,请使用:

cvs log <filename>

这将输出文件的所有版本以及已应用于版本的标签。

要确定单个标记中包含哪些文件,我唯一能想到的是使用标记检出并查看哪些文件返回。对此的命令是以下任何一个:

cvs update -r <tagname>
cvs co <modulename> -r <tagname>
cvs export <modulename> -r <tagname>

答案 2 :(得分:4)

上面引用的方法对我不起作用

cvs -q rdiff -s -D 2000-01-01 -r yourTagName

然而,在经历了很多混乱之后,我意识到了

cvs -q rdiff -s -D 2000-01-01 -r yourTagName ModuleName

作品

答案 3 :(得分:2)

您无需进行实际结帐。您可以使用-n选项仅模拟此:

cvs -n co -rTagName ModuleName

这将为您提供模块ModuleName中标记为TagName的所有文件的名称。

答案 4 :(得分:1)

以下命令提供该标记“yourTagName”中的文件列表。这些文件都标记为新文件,修订信息在“yourTagName”中。

此命令在2000-01-01和您的标记之间进行差异,可以使用更早的其他日期。

cvs -q rdiff -s -D 2000-01-01 -r yourTagName

答案 5 :(得分:0)

我不知道任何可以帮助你的工具,但如果你自己编写,我可以免除一个问题:CVS中的目录不能是tagget。只有它们中的文件有标签(这就是确定在签出特定标签上的目录时检出的内容)。