如何通过注释检索cvs提交

时间:2012-11-22 20:03:05

标签: version-control commit cvs change-management

在我的开发团队中,我们使用需求管理来控制产品的预期行为和功能,并使用错误报告工具来跟踪“问题报告”(PR)。需求的任何更改都是通过“更改提议”(CP)完成的,其行为与代码存储库中的提交非常相似。

为了进行任何更改最终产品的提交,必须在CVS提交评论中提供跟踪,这可以是 CP (这意味着更改在您的代码上反映了产品的变化)或 PR (这意味着代码中的更改正在纠正问题)。对CP和PR进行编号,以便可以将代码中的更改链接到导致项目(CP或PR)。

示例评论

纠错提交评论:

Kind: Error Correction

Trace: PR-015 Crashing upon startup

Description: Edited file foo.c in order to verify uninitialized variables.

产品变更提交评论:

Kind: Development

Trace: CP-053 New login mechanism

Description: Added login mechanism with library X and blablabla.

我的问题是,我没有任何简单的方法来检索为特定CP或PR更改的所有文件,也无法检索对代码所做的所有更改。

我曾尝试使用regexp(来自python的RE)来解析日志,但是覆盖所有可能的日志有点困难。我的正则表达式甚至在适应它之后也无法在这里和那里检索列表。

所以,我一直在想是否有更简单的方法或任何项目或产品,甚至CVS内置功能都可以帮助我。

客观问题:如何在提交中检索已修改文件的列表,该列表可由格式正确的标记(CP或PR)识别?有更简单的方法还是应该坚持使用日志解析?

环境详情:

操作系统:Windows XP CVS服务器:cvsnt CVS客户:tortoise / cvsnt

1 个答案:

答案 0 :(得分:0)

不想回答我自己的问题,但我认为对于有相同问题的人来说,这可能对今后的参考有所帮助。

好吧,我设法在“日志消息”(提交评论的cvs术语)内执行搜索,按日志消息中文本的内容进行过滤,并对在该提交中更改的文件进行分组。

正如'Joakim Elofsson'here所指出的,cvsps是一个很好的工具,用于在'补丁集'中对提交信息进行分组,这些补丁集是对这些提交中更改的所有文件的引用的单独提交。

我使用了为 cygwin 打包的cvsps版本,因为目前还没有适用于Windows的端口。

只需使用可用的互联网设置here安装cygwin,然后在选择套餐时,搜索 cvsps cvs ,同时安装两者。

我无法在我的系统上使用签出的文件(通过/ cygdrive / c文件夹),所以我从cygwin shell中检出了它们。

BEGIN乌龟用户Obs​​

您需要通过以下命令将CVSROOT环境var设置为存储库的当前CVSROOT:

export CVSROOT="Your CVSROOT string here"

通常,如果检查已签出代码库的任何文件的属性页面,则会有一个名为 CVS 的选项卡。会有你的CVSROOT字符串。 (如果您正在使用:sspi:像我一样连接到您的远程存储库,您可能会尝试将其切换到:pserver:,它确实对我有效,但我不确切知道原因)。

END乌龟用户的罢工

好吧,在检查了您的存储库使用命令之后:

cvsps

这将为您的请求创建cvsps补丁集基础。然后使用:

cvsps -l "Some regexp code"

它将在补丁集中搜索与输入正则表达式匹配的日志消息。

这是在我的数据库中使用cvsps -l P100-PR-FEX`的示例(更改了一些文件名和路径以便公开...):

PatchSet 71
Date: 2012/10/25 11:30:44
Author: GUARITA
Branch: HEAD
Tag: (none)
Branches:
Log:
Kind: Error correction

Trace: P100-PR-FEX145

Description:
Corrections of the TRUE and FALSE conventions used by the C++ (true:everything but 0, false:0) P100 interface to the VB6 (false:0, true:-1 or 'all bits set to 1 which is -1 in 2's complement') P100Interface ActiveX object.
P100 Panel Version increment.

Members:
        SidePanels/P100.wimp:1.2->1.3
        SidePanels/Calcs/P100Interface/private/P100Interface.cpp:1.2->1.3

您也可以使用它来比较标记(我用来控制版本)与cvsps -r <tag1> -r <tag2>之间的变化。