首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过注释检索cvs提交

如何通过注释检索cvs提交
EN

Stack Overflow用户
提问于 2012-11-22 20:03:05
回答 1查看 367关注 0票数 0

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

为了做出任何修改最终产品的提交,必须在CVS提交评注中提供一个跟踪,它可以是CP (这意味着您的代码上的更改反映了产品的更改)或PR (这意味着正在对代码进行更改以纠正问题)。CPs和PRs被编号,这样就可以将代码中的更改链接到引起项(CP或PR)。

样本评论

纠错提交评注:

代码语言:javascript
复制
Kind: Error Correction

Trace: PR-015 Crashing upon startup

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

产品变更提交评注:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 13:48:40

我不想回答我自己的问题,但我认为这可能对将来有同样问题的人有帮助。

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

正如'Joakim‘这里所指出的,cvsps是一个很好的工具,可以将提交信息分组到“修补程序集”中,这些补丁集是单独提交的,其中引用了在这些提交中更改的所有文件。

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

只需安装带有internet安装程序的这里,当选择软件包时,搜索cvspscvs,同时安装两者。

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

乌龟用户开始使用Obs

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

代码语言:javascript
复制
export CVSROOT="Your CVSROOT string here"

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

龟类使用者的终端机

那么,在签出您的存储库之后,使用命令:

代码语言:javascript
复制
cvsps

这将为您的请求创建cvsps修补程序库。然后使用:

代码语言:javascript
复制
cvsps -l "Some regexp code"

它将在补丁集中搜索与输入regexp匹配的日志消息。

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

代码语言:javascript
复制
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>之间的更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13519342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档