やりたいこと
- Git のコミット間の実行ステップ数を調べたい。
- 追加行をカウントしたい。
- 削除行はカウントしたくない。
- コメント行はカウントしたくない。
環境
- Windows 7 Professional 32 bit
- Git BASH
カウントするコード
git diff
: 修正箇所で最終的に残っている実行行をカウントする。awk
: カウントする行を抽出する。^+
: + で始まる行を残す。- 次の条件に当てはまる行を除外する。
^---a
: — a で始まる行^+++ b
: +++ b で始まる行^(+|-)$
: + または – のみの行^(+|-)(¥t| )*(<%|¥/|¥*)
: + または – で始まり、0 個以上のタブまたはスペースがあり、続いて <% または / または * のある行
実際のコードは次のようになりました。
# ステップ数カウント # 修正箇所で最終的に残っている実行行をカウントする。 # 差分を全てそのまま取得 git diff before after > step-all .txt # カウントする行のみを抽出 awk '/^+/ && (!/^---a/ && !/^+++ b/ && (!/^(+|-)(¥t| )*(<%|¥/|¥*)/) && !/^(+|-)$/) { print $0 }' step-all.txt > step-edited.txt # ステップ数を出力 wc -l step-edited.txt # ワンライナー git diff before after | awk '/^+/ && (!/^---a/ && !/^+++ b/ && (!/^(+|-)(¥t| )*(<%|¥/|¥*)/) && !/^(+|-)$/) { print $0 }' | wc -l
おわりに
参考ページです。ありがとうございます!
- Regexper
- [svn 差分 ステップ数] で検索
- [git 差分 ステップ数] で検索
以上です。