はじめに
SVNを使って開発しているプロジェクトの管理者向けにstatSVNというツールを紹介します。
statSVNは日々のSubversionリポジトリの利用状況を解析し、グラフや表として出力してくれます。具体的には、以下のようなデータを出力することができます。
- ソースコードの行数推移
- 開発者ごとのソースコード行数
- 時間別のアクティビィティ分析
- 開発者毎のアクティビィティ分析
- モジュール毎のアクティビィティ分析
- ディレクトリ毎の状況
- ファイル数や平均ファイルサイズ、巨大ファイル
- 変更回数の多いファイルの分析
- コミットログの時系列での整形出力
statSVNを使えば、ソフトウェアの品質分析や開発の課題を見つけるのに役立ったりするかもしれません。
オーム社
売り上げランキング: 65,157
必要なもの
- Subversionとリポジトリ
- JRE(Java(TM) SE Runtime Environment)
- statsvn-0.7.0
statSVNを入手する
以下のサイトのDownloadからstatSVNはダウンロードすることができます。
ダウンロードしたら、statsvn-0.7.0.zipを解凍して任意のディレクトリに置きます。(このエントリではC:\Users\Admin\Desktop\statsvn-0.7.0)
SVNのログを出力する
statSVNはSVNのログから日々の利用状況を解析して、グラフ化します。このため、はじめにログを出力する必要があります。
1. コマンドプロンプトを起動して、作業コピーのディレクトリに移動します。
2. 以下のコマンドを実行して、SVNのログをxmlファイルとして出力します。
svn log --xml -v> svn.log
SVNの利用状況を解析する
つづいて、さきほど出力したログファイルからstatSVNでSVNの利用状況を解析していきます。
1. カレントディレクトリをC:\Users\Admin\Desktop\statsvn-0.7.0に変更して、以下のコマンドを実行します。
java -jar statsvn.jar C:\Users\Admin\Desktp\work\svn.log C:\Users\Admin\Desktop\work\Sample >2011/12/18 18:06:47 net.sf.statsvn.util.JavaUtilTaskLogger info >情報: StatSVN - SVN statistics generation (中略) >runtime: 4.452 seconds >memory usage: 64.0 kb
ちなみに、引数に指定する値は以下のような感じです。
java -jar statsvn.jar ログファイルのパス 作業コピーのパス
2.SVNの利用状況の出力が完了すると、C:\Users\Admin\Desktop\statsvn-0.7.0にたくさんファイルが出力されています。
3.index.htmlを選択して、ブラウザで開きます。
出力データの説明
出力されるデータはすべて英語なのですが、ニュアンスだけは分かると思います。
- Developers
開発者ごとの活動がグラフで参照できるようになっています。サンプルでは開発者が1人しかいませんが、複数人で開発しているプロジェクトであれば、もっとグラフィカルになると思います。
- Commit Logs
コミットログを確認できます。日本語ははじめ文字化けしていますが、ブラウザのエンコーディングを切り替えれば、ちゃんと表示されます。
- Lines of Code
ソースコードの総行数を確認できます。行数が急激に減ったり、増えたりしていないかを確認できます。
- File Sizes and File Counts
ファイルサイズとファイルの種類、数を表示できます。全体に対する割合なども表示できます。
- Directory Sizes
- Repo Heatmap
ディレクトリ内にあるファイルの相対的なファイルの大きさをヒープマップというグラフで表示します。
- LOC and Churn
ソースコードの総行数と修正した行数を日ごとに表示します。リリースに向けて近づくにつれて、だんだんと修正量は小さくなるはずです。