svn modify ファイルにコミットする頻度を示すものを探しています。どのファイルが頻繁に、どのくらいの頻度で変更されるかを確認できるようにしたいと考えています。プロジェクトごとの変更頻度を確認できるように、「レポート」もディレクトリごとにグループ化することをお勧めします。
そのような機能を提供するツールはどれですか?
(それが重要な場合-私もmavenを使用しており、言語はほとんどJavaです)
Subversion には、これを行うための標準ツールはありません。ただし、それを行う方法の 1 つが考えられますが、時間がかかる場合があります。
まず、リポジトリ内のすべてのファイルのリストを生成する必要があります。これはそれを行う必要があります:
$ 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
。それらのリビジョンのほとんどが 2 年前のものであれば、ファイルに多くのリビジョンがあったとしても気にしないかもしれません。そして、これはおそらくシェルスクリプトの限界です。ロジックは Python または Perl に移植でき、そこでさらに多くのことを実行できます。