0

我正在寻找每个文件在我们的 cvs 存储库中的特定分支上更改的次数。我特别在寻找所有变化最大的文件。“前 40 名”名单就足够了。

4

1 回答 1

0

这是原始提问者作为编辑添加的,我已将其转换为社区 wiki 答案,因为它应该是答案,而不是编辑。

在这种情况下,该分支已经使用了大约 6 个月。如果我设置为该分支中的最新版本(“cvs -z9 co -r r80m-1 ...”),则修订的最后一个数字似乎是当前分支中的更改数量——如果文件有在过去 180 天内被更改,那么它就在这个分支上。我正在使用linux,所以我最终这样做了:

for file in `find . \! \( -name CVS -prune \) -type f -mtime -180`
do
   cvs status "$file" | grep Working.revision | gawk -v FNAME=$file '{ print FNAME gensub(/(\.)([0-9]*)$/, "\\1\\2 churn:\\2  ", 1) }' >> cvs_churn.txt
done
sort -k3 -t: -n cvs_churn.txt | uniq

因此,对于“cvs status”输出中的每一行,例如:

Working revision: 1.2.34

gawk 命令将其更改为:

./path/file.c Working revision: 1.2.34        churn:34

然后我可以对“:34”进行排序。


这行得通,但它很粗糙。我希望其他人可以用更好的方法来回答。

我在其他一些问题中看到过,例如:人们提到了 statCVS 的免费 CVS 报告工具。听起来很有趣(超出了我的需要,但其他一些信息也可能有用)。但是,它说它只适用于“默认”分支。文档有点不清楚——我可以设置感兴趣的分支,并为此使用它吗?

于 2015-07-08T13:48:52.330 回答