「今日はひたすらコード書いたなー」 みたいな日が開発していると度々あるのですが、 ふと実際の所どれくらい書いたのかを知りたくなりました。
gitやsubversionみたいなバージョン管理システムを利用してれば そういった情報は簡単に取ることが出来ます。
まず普通にdiffを。(とりあえずsvnとしときます)
$svn diff -r リビジョン番号 | grep "^\+[^+]"
これで特定のリビジョン番号とワーキングコピーの差を取り、 追記した分の行数を知ることが出来ます。 grepの中の意味は「+で始まり2文字目は+でない所」を取り出してます。 もしかしたらもっといい方法があるかもしれません。
追記分がとれたので後は行数をカウントしたり 好きに調理できます。 Linuxにはwcというテキストを数える便利なコマンドがあるので これにさらにリダイレクトして行数を数えてみます。
$svn diff -r リビジョン番号 | grep "^\+[^+] | wc
3つ数字が出てきますが、一番左が行数です。 ちなみに真ん中は単語数、右はbyte数です。 今回は左端の「+」記号があるので行数以外は正確じゃないですが。 (空行もカウントされないので、実際のソースでは1.5倍近く膨らむかも)
ちなみに今日は520行でした。 1000目指したいです。