開発実績の調査に「statsvn」を使う

二十一世紀にもなり、構造化プログラミングだ!という声は、オブジェクト指向だ!に切り替わり…そういえばアスペクト指向はどうなったんだろうと思いをはせる昨今、いかがお過ごしでしょうか。
最近は、開発プロセスの見直しも叫ばれておりますが、まだまだ現場では「KLOC! KLOC! KLOC!」と言われますね。
(注:KLOCというのは、 kilo line of code。つまりは「1000行あたりのコード」のことです)
最初から計測するつもりでいれば、対策もできるのですが世の中、何事も後で言われます。
たとえば突然 BOSS がこんなこと言いませんか?

  • いつ頃コード量が大幅に増えたのか?
  • 作業者あたりの作業量は?
  • 週あたりの平均は?

運良く私は言われたことがありませんが(笑)、Subversionを使用していれば大丈夫。
「StatSVN」というツールがあります。

http://www.statsvn.org/

このツールを使用すると Subversion のコミットログから、ソースコードの増減について計算してレポートを出力してくれます。(便利!)

使い方

  1. まずはSubversionのログ結果ファイルを作りましょう。
    次のコマンドを入力すれば、カレントディレクトリに svn.log ファイルが作成されます。C:\svn log –xml -v >> svn.log
  2. statsvnをサイトから落として、コマンドプロンプトから次の様に入力します。
    java -jar statsvn.jar <svn.logへのパス> <作業コピーのディレクトリパス>
  3. 後は、レポート出力先の「index.html」を開けばOKです。

出力例

手元にあるソースコードで実施した次に示します。

StatSVN-ScreenShot

トラブルシューティング

上記コマンドのまま使っても便利なのですが、次の様なことに困ります。

  1. コミット時に入力したコメントなどが文字化けしてしまう。
    → 文字コードがShift-JISなら、オプションに「-charset shift-jis」をつければ正しく表示されるはずです。
  2.  レポート保存先を指定したい
    → オプションに「-output-dir <レポート生成先のパス>」を付加します。フォルダが無い場合は自動的にフォルダも作るようです。
  3. 一部除外したいファイル、フォルダがある
    → オプションに「-exclude <フィルタ条件>」を付加します。
    私の場合は、ソースコードのソリューション内にテストプロジェクト(名称はxxx.Test)が存在したので、次のオプションで削除しました。「-exclude **Test/**」

参考文献

このツールを使うのに、以下のサイトを参考にさせて頂きました。

http://www.moongift.jp/2008/03/statsvn/
http://lab.tricorn.co.jp/satoo/1441

  1. コメントはまだありません。

  1. トラックバックはまだありません。