SVN - 检索有用信息

时间:2008-11-02 10:00:05

标签: svn

我们正在使用Subversion。我们想

1. search across all commit messages ?
2. monitor the commits on certain important files ?
3. identify files that are never/rarely used ?
4. identify files that are most frequently changed ?         
5. identify files that most developers have accessed ?
6. identify files that have been committed together many number of times ?

这些数据的使用可能是清除像these这样的消息,重构代码并清理未使用文件的项目。

请建议实现同样的工具..

编辑:我们在Windows 2003上运行SVN。

5 个答案:

答案 0 :(得分:5)

StatSVN应该可以为您完成大部分内容。但是,您需要设置计划任务以在存储库上运行它,或者如果您碰巧使用它,则可以将其集成到Ant构建中。

然而,一些更复杂的任务(例如列表中的数字6)可能需要自定义解决方案。或者,由于StatSVN是开源的,您可以对其进行必要的更改并将其提交回项目。

答案 1 :(得分:3)

另一个值得关注的工具是ViewVC。最新版本具有维护提交数据库的选项。这允许您搜索所有提交消息,并查看按用户,时间或正则表达式过滤的目录中的文件或文件的更改列表。它还支持RSS源,可以对单个文件进行某种形式的通知。

对于列表中的3,4和5,其他答案中提到的StatSVN应该可以执行此操作。对于商业解决方案,Atlassian有FishEye

在我们的存储库中,我们使用ViewVC和StatSVN的组合,前者用于存储库浏览和搜索提交消息,后者用于查看统计信息。

答案 2 :(得分:1)

您使用的是什么平台?在linux上,使用sed的快速shell脚本应该可以解决问题。

答案 3 :(得分:1)

在.NET版本中,您可以使用SharpSvn库。为了实现你想要的,你需要吸收所有日志消息并自己解析它们。

答案 4 :(得分:1)

你可以使用Subversion命令行客户端和一些脚本(Ruby或Python)做很多事情,但不要指望这里的人为你编写代码。实施细节将取决于您想要运行统计数据的频率以及您的回购协议的大小。

从Subversion命令行客户端处理数据时,您可能会发现更容易使用--xml选项(由“log”和“info”命令接受),它以XML格式输出数据。

1. search across all commit messages ?

运行“svn log -v --xml”并对生成的XML(或部分XML)运行文本搜索。您可以指定要搜索的提交消息集。

2. monitor the commits on certain important files ?

这是使用commit-triggers实现的。请参阅Subversion服务器文档。

3. identify files that are never/rarely used ?
4. identify files that are most frequently changed ?         
5. identify files that most developers have accessed ?
6. identify files that have been committed together many number of times ?

这些都可以使用“svn log --xml”的输出和生成的XML数据的后处理来实现。