小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Subversionの利用状況をグラフィカルに表示してくれるstatSVNがすごい!

はじめに

SVNを使って開発しているプロジェクトの管理者向けにstatSVNというツールを紹介します。
statSVNは日々のSubversionリポジトリの利用状況を解析し、グラフや表として出力してくれます。具体的には、以下のようなデータを出力することができます。

  • ソースコードの行数推移
  • 開発者ごとのソースコード行数
  • 時間別のアクティビィティ分析
  • 開発者毎のアクティビィティ分析
  • モジュール毎のアクティビィティ分析
  • ディレクトリ毎の状況
  • ファイル数や平均ファイルサイズ、巨大ファイル
  • 変更回数の多いファイルの分析
  • コミットログの時系列での整形出力

statSVNで開発の状況を可視化する | Ryuzee.com はてなブックマーク - statSVNで開発の状況を可視化する | Ryuzee.com

statSVNを使えば、ソフトウェアの品質分析や開発の課題を見つけるのに役立ったりするかもしれません。

Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
Mike Mason
オーム社
売り上げランキング: 65,157

必要なもの
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

ソースコードの総行数と修正した行数を日ごとに表示します。リリースに向けて近づくにつれて、だんだんと修正量は小さくなるはずです。