2

我在另一个问题上看到了对CVSNT 自动生成的唯一提交 ID 的引用,该 ID 标记了每次提交。我认为我部门中的大多数人都在使用 CVSNT 或它的前端。

我在CVSNT 手册中找到了提交标识符,但没有说明如何确定文件特定修订版的 CVSNT 提交标识符是什么。有没有办法做到这一点?我想知道正在为其他人的签入生成哪些提交标识符,以便我可以将他们提交中涉及的文件组合在一起。

4

1 回答 1

3

CVS 命令日志和 rlog 都显示文件的各个修订版本的提交标识符。我不知道使用此标识符获取检索信息的 CVS 命令,但我可以确认单个提交中的所有文件共享相同的标识符。

我有我自己的日志文件解析器,它使用 commit-id 将受单个提交影响的文件组合在一起(例如,更改历史记录按日期排序并将文件分组为单个提交)。

阅读您的链接后,您可能可以指定类似“log -r @commit-id”的内容来获取共享提交标识符的受影响文件的列表。命令行可能有更多的调整,但以下给出了一些成功(有点嘈杂):

c:\> cvs -q log -N "-r @fd049d34574117b"

=============================================================================

RCS file: /folder/file.xml,v
Working file: folder/file.xml
head: 1.3
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 4;     selected revisions: 1
description:
=============================================================================

RCS file: /folder/file2.xml,v
Working file: /folder/file2.xml
head: 1.2
branch:
locks: strict
access list:
keyword substitution: kv
total revisions: 2;     selected revisions: 0
description:
=============================================================================

请注意,第一个文件包含“选定的修订:1”,这意味着提交对应于文件的版本。

  1. 您可能可以使用正则表达式来过滤掉“选定的修订:0”条目(由一系列“==============”分隔的多行 reg
  2. 然后仅提取结果的“工作文件”条目以给出文件列表。

如果您不想推出自己的工具,请尝试寻找“cvs changeset”:

于 2010-06-09T14:59:56.700 回答