快速业务通道

StatCVS提供了对CVS储存库活动的深入观察 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
好方法,可 以将 CVS 用户名映射到真实的用户名,这会使报告看起来更漂亮。有关的更多 信息,请参阅 参考资料。

为多个项目生成报告

前面已经看到了如何在一个 CVS 储存库上运行 StatCVS。但是,如果拥有多 个储存库,那么您就会希望有一种方法能够每天夜里为所有的储存库生成 StatCVS 报告。因为可以从命令行运行 StatCVS,所以这是一个用脚本就可以解 决的简单问题。以下是一些需要牢记的事项:

StatCVS 是一个 Java 程序,所以需要大量内存才能启动。处理大型 CVS 储 存库时也需要相当一段时间。所以如果运行它的机器还有其他用途,那么最好在 处理不同的储存库之间让机器休息一会。如果运行的系统支持优先级设置,那么 用低优先级来运行耗时比较长的任务是一个好主意。

如果定期将储存库添加到机器或从机器中删除储存库,那么某些储存库可能 不包含模块。所以请事先检测这种可能性,免得没有必要地启动 StatCVS。

清单 6 显示了一个小小的 Ruby 脚本,可以在拥有公共父目录的多个储存库 上运行 StatCVS(关于 Ruby 的更多内容,请参阅 参考资料);在下载代码中 也有这个脚本:

清单 6. 运行 StatCVS 处理多个储存库的脚本

#!/usr/local/bin/ruby require ''fileutils'' HOME_DIR = "/tmp/" CVS_DIR= "/path/to/my/cvs/" BASE_OUTPUT_DIR = "/var/www/my-projects/" DELAY = 5 Dir.chdir(HOME_DIR) # get a list of all the repositories Dir.new(CVS_DIR).entries.grep(/^[^.]/).each {|file| # create a working directory working_directory = "tmp_" + rand().to_s Dir.mkdir(working_directory) Dir.chdir(working_directory) `cvs -d#{CVS_DIR}#{file} -Q co .` FileUtils.rm_rf(%w{CVS CVSROOT}) # no need to run StatCVS if no modules exist yet if !Dir.new(".").entries.grep(/^[^.]/).empty? `cvs -d#{CVS_DIR}#{file} -Q log > log` cmd = "/usr/java/java/bin/java " cmd = cmd + "-jar /usr/local/statcvs/statcvs.jar " cmd = cmd + "-output-dir #{output_directory} log ." `#{cmd}` FileUtils.rm("log", :force=>true) end # clean up and sleep for a bit to let things settle down Dir.chdir(HOME_DIR) FileUtils.rm_rf(working_directory) sleep DELAY }

StatCVS提供了对CVS储存库活动的深入观察(7)

时间:2011-09-09 ibm

StatCVS 内幕和限制

因为 StatCVS 是一个开源项目,所以您可以得到它的代码。要得到 StatCVS 的代码,请从 StatCVS 的页面下载源代码 zip 文件(请参阅 参考资料),或 者从这个 Web 站点上的 CVS 储存库签出代码。

内幕

这里是一些关键的统计数字:

4,463 行代码,由 JavaNCSS 测量。

176 个 JUnit 测试。

一个很好的 Ant 构建文件,可以促进定制构建的编辑。

一个好标志 —— PMD 在 StatCVS 中找不到未使用代码的例子。

有关 JavaNCSS、JUnit、Ant 和 PMD 的更多信息,请参阅 参考资料。

StatCVS 用 JFreeChart 来创建图表和图形。所有的图表都用可移植网络图 形(Portable Network Graphics - PNG)格式生成,大多数现代 Web 浏览器都 支持这种格式。生成图表的代码被很好地封装在 net.sf.statcvs.renderer包中 。

限制

最大的限制可能是 StatCVS 不支持分支;它只能报告对每个模块的 HEAD 所 做的修改。所以,如果开发团队的应用模式是为产品的每个版本建立一个新分支 ,并且只提交到这个分支,那么 StatCVS 无法返回正确的结果。这个问题曾在 StatCVS 的邮件列表上讨论过(请参阅 参考资料),但是看起来近期不会得到 解决。但是,既然它是

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号