我正在寻找可以显示提交svn修改文件的频率的内容。我希望能够看到哪些文件经常更改以及频率更改。优选地,“报告”也应按目录分组,以便能够查看每个项目的变化频率。
哪种工具提供这种能力?
(如果重要的话 - 我也使用maven,语言主要是java)
答案 0 :(得分:2)
在Subversion中没有标准工具可以做到这一点。但是,我可以看到一种可行的方法,但可能需要一段时间。
首先,您需要生成存储库中所有文件的列表。这应该这样做:
$ svn ls -R $REPO
然后您可以将其用作输入,并以某种方式从每个文件生成报告:
$ svn ls -R $REPO | while read $file
do
here be dragons
done
我们需要摆脱文件(现在BASH和Kornshell具体):
$ svn ls -R $REPO | while read $file
do
[[ $file == */ ]] && continue
here be dragons
done
然后,我们需要弄清楚如何计算所有的变化。 svn log
应该这样做。如果我们计算除了破折号之外的所有行,那么应该给我们一个计数:
$ svn ls -R $REPO | while read $file
do
[[ $file == */ ]] && continue
count=$(svn log $REPO/$file | grep "^--*$" | wc -l)
echo "$REPO/$file: $count"
done
这有一些问题:
这是一个开始。您可以通过-r
中的svn log
参数限制日期范围。如果大多数修订来自两年前,您可能不在乎文件是否有大量修订。而且,这可能是shell脚本的限制。逻辑可以移植到Python或Perl,并在那里完成更多工作。
答案 1 :(得分:1)
虽然有SVN内部命令可以生成报告,但我建议尝试使用Atlassian的FishEye工具。 它是一个付费工具,但提供了大量详细信息,包括特定用户提交的文件数量,提交了多少次文件,并以图形格式提供报告。
答案 2 :(得分:0)
在读取$ file时,行中不应该有$ 例如它应该是“在读取文件时”。 否则它工作正常!