0

在我的开发团队中,我们使用需求管理来控制我们产品的预期行为和功能,并使用错误报告工具来跟踪“问题报告”(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 更改的所有文件,我也无法检索对代码所做的所有更改。

我曾尝试使用正则表达式(来自 python 的 RE)来解析日志,但覆盖所有可能的日志有点困难。即使经过多次调整,我的正则表达式也无法在这里和那里检索列表。

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

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

环境细节:

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

4

1 回答 1

0

不想回答我自己的问题,但我认为这可能有助于将来有相同问题的人参考。

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

正如 'Joakim Elofsson'在这里指出的那样,cvsps 是一个很好的工具,用于将'patch sets' 中的提交信息分组,这些提交信息是单个提交,并引用了这些提交中更改的所有文件。

我使用了为cygwin打包的 cvsps 版本,因为此时没有适用于 windows 的端口。

只需使用此处提供的 Internet 设置安装 cygwin,然后在选择软件包时搜索cvspscvs,同时安装两者。

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

乌龟用户的 BEGIN Obs

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

export CVSROOT="Your CVSROOT string here"

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

Tortoise 用户的 END Obs

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

cvsps

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

cvsps -l "Some regexp code"

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

这是在我的数据库上使用cvsps -lP100-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>.

于 2012-11-26T13:48:40.843 回答