「StatSVN」を使ってみた

SATOOstatsvn, subversion, バージョン管理, 統計, 解析

こんにちは、SATOOです。

うちの開発チームではバージョン管理システムとして「Subversion」を利用しています。
「Subversion」では、開発結果がログとして蓄積されていきますが、このログを解析してグラフ化したり統計データをとったりすることができるソフトが「StatSVN」です。
今回は、この「StatSVN」を使ってみたのでそのメモを残しておこうと思います。

「StatSVN」はjavaのプログラムなので、プラットフォームは選びません。
ここでは、Linuxで動かす前提で話を進めます(Linuxにjavaがインストールされていることが前提となります)。

「StatSVN」のプログラムを本家サイトからダウンロードしてきます(記事現在のバージョンは0.4.1です)。
zipで圧縮されているので、解凍します。
解凍してできたディレクトリを特定の場所(ここでは仮に「/home/project/statsvn」とします)に移動します。
このディレクトリには、「readme」と本体「statsvn.jar」が入っています。

ログ結果を解析したいリポジトリの作業コピーディレクトリ(ここでは例として「/home/project」と仮定します)で、以下のコマンドを叩いてXML形式のログファイルを作成します。

$ svn log --xml -v > svn.log

上記の操作で、「svn.log」という名前のログファイルが作られます。
次のコマンドを実行して「StatSVN」に解析を行わせます。

$ cd /home/project/statsvn
$ java -jar statsvn.jar /home/project/svn.log /home/project

すると「/home/project/statsvn」に解析結果が作成されます。
あとはその中の「index.html」をブラウザで開くだけです。

ブランチが切られてから現在までのリポジトリ全体のソースコード行数の変化、平均ファイルサイズ、ログの推移といったデータが出力できます。
また、各開発者ごとの解析結果も各種取ることができます。

上のイメージだと、時間ごとの平均コミット数のグラフと、曜日ごとの平均コミット数のグラフを表示しています。
この開発者は、お昼に行く直前の11時台と、帰宅直前の17~18時にコミット率が上がっています。
また、火曜日にとびぬけて多くのソースをコミットしていることがわかります。

「TortoiseSVN」にも同様の統計機能がありますが、個人的には「StatSVN」のほうが機能的に一枚上手かなと感じます。
特に、時間ごと・曜日ごとの平均コミット数を集計してくれる機能は貴重です。
週間単位で、その開発者がどういうスケジュールで開発を行っているかがひと目でわかるからです。

プロジェクト収束後のKPT実施時に、この解析結果を出力して考察する、なんていうのも有意義かもしれません。

SATOOstatsvn, subversion, バージョン管理, 統計, 解析

Posted by SATOO