hitode909の日記

趣味はマリンスポーツですの日記です

Gitリポジトリの各ファイルの行数の履歴をHRForecastに投稿してファイルの成長を観察できるやつ

Gitリポジトリの各ファイルの行数の履歴をHRForecastに投稿してファイルの成長を観察できるっていうのを書いてみた.

HRForecastは日付と数値をPOSTするとグラフにしてくれるやつ.最近身の回りにもう1人ユーザーいて2人くらいの間で流行ってる.


rubygems.orgのソースコードはRailsで書かれてGitHubにあるのでプロットしてみた.


ルーティングを書くファイルは時間が経つとだんだん増える.

f:id:hitode909:20130429193207p:plain


単機能のModelとかは一時期に作られてそこから変化ない.

f:id:hitode909:20130429193307p:plain


処理がよそに移されると行数が減る.このグラフだけ見るとよそに移ったのか機能が消えたか判別できないからあまりおもしろくない.

f:id:hitode909:20130429194203p:plain


見たらおもしろいかと思ったけど,まあそうだろうという感じでそんなにおもしろくなかった.
便利な用途あるとしたら,途中から変な勢いで成長しだしたらおかしいとか.けどそういうのは人間が1つずつ形を見て判断するんじゃなくて機械が判定してやばいとか教えてくれたほうがいいと思う.グラフにするのはできるけど,そこから便利情報を取れないとあまりうれしくない.


GritっていうRubyからGitを操作するライブラリを使っていて,コミットを最初まで辿って,各コミットに含まれるファイルの行数を取得する,みたいなことを書いてる.


行数いま単純に改行の数だけど,もうちょっとちゃんとした数え方とかあるので,ちゃんとしたかったらできるだろうけど,ちゃんとしても意味ないだろうからやってない.

テキストファイルとしての行数を物理LOC (physical LOC) というが、これをそのまま使うことは少ない。空行(改行など空白だけの行)やコメント行(コメントと空白だけの行)は除く、2つの命令が書かれた行は2行と数える、括弧だけの行を除くなどの換算をした行数を論理LOC (logical LOC) といい、通常はこちらを使う。ただし、細かい規則にはさまざまな流儀がある。

LOC - Wikipedia