WindowsでCLOC使って修正箇所の行数を数える

修正の規模がどれくらいか?ってので、ソースコードを何行変更したかってのをCLOC(http://cloc.sourceforge.net)ってのをとりあえず使ってみた。

インストール

exeファイルをダウンロードできるので、それを環境変数のPathが通ってるところにおけば、コマンドプロンプトから実行可能になる。

変更前と変更後で変更のあった行数を集計する。

cloc --diff --by-file source_dir_before source_dir_after > diff.txt

diff結果が出力されるので*1

----------------------------------------------------------------
File                         blank        comment           code
----------------------------------------------------------------
source_dir_before/com/sample/Sample.java
 same                          0             26             19
 modified                      0              0              0
 added                         0              0              0
 removed                       0              0              0

あとはこれをサクラエディタとかのマクロ組んでExcelのフォーマットに合うように整形して、貼り付けてピボットテーブルとかでなんやかんやして終わり。

変更前と変更後で変更のあったファイル数を集計する。

ファイル毎のdiffじゃなくて全体的な情報(何個のファイルが変更されたの?とか)の場合は、--by-fileオプションを外して実行する。

cloc --diff source_dir_before source_dir_after > diff.txt

実行すると、

-------------------------------------------------------------
Language  files          blank        comment           code
-------------------------------------------------------------
XML
 same       3              0              0            237
 modified   0              0              0              0
 added      0              0              0              0
 removed    0              0              0              0
Java
 same     581              0          42284          54479
 modified  21              0            274            498
 added      3            112            280            361
 removed    0             11            154            604
-------------------------------------------------------------
SUM:
 same     584              0          42284          54716
 modified  21              0            274            498
 added      3            112            280            361
 removed    0             11            154            604
--------------------------------------------------------------

いろんなフォーマットで出力可能になってるんだけども*2diffをとる場合は出力フォーマットの指定が効いてないみたい。

なので、サクラエディタのマクロで無理やり整形したのでdiffとって変更された行の集計していい感じのフォーマットに出力できるツールがあれば便利だなぁ。

*1:標準出力にでてるのをそのままリダイレクトしてるので処理経過のログもでてるけどそれは(゜ε゜)キニシナイ!!

*2:sql,xml,yamlなど