svnでdiffの行数を取得する

このエントリーをはてなブックマークに追加
はてなブックマーク - svnでdiffの行数を取得する
Share on Facebook

どれだけコーディングしたかチェックするため、svnのdiffの行数を取得するコマンドを考えました。 下のコマンドを叩くと、変更された行の総数が表示されます。

(2011-08-17修正) 以前のコードはdiffのヘッダ行まで取得してしまっていたので、正しい数値が得られるよう修正しました。

svn diff -r {before}[:{after}] -x -b {path} | grep -E '^[+\-][[:blank:]]' | wc -l

例えば「チェンジセット301~310で uso.php に発生した差分の総行数」は、下のようになります。

# svn diff -r 301:310 -x -b ./uso.php | grep -E '^[+\-][[:blank:]]' | wc -l
500

ロジックは、

  1. 空白文字の差分(インデントや空行の削除)を無視してdiffを取る
  2. 差分行だけ(「+ 」「- 」どちらかから始まっている行)を取得する
  3. 行数をカウントする

となっています。

参考

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>