有谁知道CVS命令行选项来获取上次签入的详细信息?
我在Windows上使用CVS(具有WinCVS前端),并且希望在每次构建失败时将最后一次检入的详细信息添加到我们自动构建过程的电子邮件中,以使其更易于修复。
我需要知道已更改的文件,已更改它们的用户以及注释。
我一直在尝试确定命令行选项,但似乎从未获得准确的结果(或者得到太多的结果,而不仅仅是一次签入,或者是两周前的一些随机签入的详细信息)
解决方案
回答
CVS不提供此功能。但是,我们可以通过购买FishEye的许可证或者使用CVSTrac来获得它(注意:我没有尝试过CVS Trac)。
或者,我们可以迁移到SVN,它确实通过原子提交提供了此功能。我们可以检入一组文件,并将其计为一次提交。在CVS中,无论我们做什么,每个文件都是一个单独的提交。
回答
CVS不会像其他版本控制系统那样对变更集进行分组。每个文件都有其自己的独立版本号和历史记录。这是CVS的不足之一,促使人们转向新的VC。
也就是说,我们可以通过多种方式实现目标。最简单的方法可能是添加一个提交后挂钩,以发送电子邮件或者登录到文件。然后,至少,我们可以通过查看电子邮件的发送时间和进行更改的人将一组提交分组在一起。
回答
" cvs history -a -l"会让我们接近吗?为所有用户显示每个项目的上一个事件...
回答
哇。
我忘了这很难做。我之前所做的是一个两个阶段的过程。
首先,跑步
cvs history -c -a -D "7 days ago" | gawk '{ print " == \"" "\" && == \"" "/" "\" { print \"" " " " " " " " " "/" "\"; next }" }' > /tmp/$$.awk
收集有关过去7天所有签到信息的信息,并生成一个脚本,该脚本将用于创建已发送电子邮件的一部分。
然后,我在包含损坏文件的目录中拖曳了CVS / Entries文件,以获取更多信息。
将两者混为一谈,使我能够摸清罪魁祸首并向他们发送电子邮件,通知他们他们破坏了建筑。
对不起,这个答案没有我希望的完整。
回答
我们通过转储更改日志的perl脚本来完成此操作,我们可以在第二个链接处获得Windows的免费版本的perl。
Cvs2Cl脚本
主动式Perl
回答
我在CVSROOT中使用loginfo并将该信息写入文件
http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_18.html#SEC186
回答
CVSNT支持提交ID,我们可以在日志,签出或者更新命令中使用它们来代替标签。每组提交的文件(在CVSNT中,提交是原子的)都具有其自己的唯一ID。我们只需要首先通过cvs log确定最后签入文件的commitid(可以通过-d" 1小时前"或者类似的方法限制输出),然后查询哪些其他文件具有该ID。
回答
Eclipse内置了ChangeSet。我们可以按提交浏览最近的更改(至少是传入更改或者更新)。它通过按作者,提交消息和类似的时间戳对提交进行分组来实现。
这也适用于"比较/另一个分支或者版本",我们可以在其中选择分支,标签和日期。在"同步视图"图标中浏览带有"更改集"的弹出菜单,然后亲自查看。
编辑:至少需要以查看器的身份更改为Eclipse,但是根据我们需要比较和分组的频率,它可能还不错。如果我们不想使用更多,请仅将Eclipse用于CVS。甚至有可能通过带有所有插件的rcp来获得一个大小合适的图形cvs客户端,但这肯定超出了范围...
回答
这不是解决的问题吗?我认为CI矩阵上同时支持CVS和电子邮件通知的多种工具都可以为我们完成此任务。