2

私は一日のほとんどを、私たちのプロジェクトの1つのコードベースに基本的にいくつかのハウスキーピングの変更を加えることに費やしました(すべてのSystem.out.println()呼び出しをlog4jに置き換えます)。

この一連の変更で更新したコードの行数に興味があります。

とにかく、cvs diff変更された行数の正確なカウントを取得するためのコマンドまたは別のコマンドはありますか?

私はもう試した

cvs diff -b -B -R

作業ディレクトリ(および再帰的にサブディレクトリ)のすべての変更を取得しますが、変更されたファイルごとにファイル/バージョン情報も出力されるため、出力行を数えるだけでは意味がありません。

何か案は?

4

4 に答える 4

5

diffstatユーティリティは、cvs、svn、またはその他の diff の出力から簡単なメトリックを取得するための優れたツールです。

于 2008-11-08T11:06:48.740 に答える
3

差分出力から余分な行を除外し、行を数えます。

たとえば、< または > で始まる行のみを grep します。

cvs diff -b -B -R | egrep '^<|>' | wc -l
于 2008-10-22T19:58:32.303 に答える
2

cvs diff の出力を diffstat にパイプするだけです。

于 2008-10-22T19:40:51.980 に答える
0

次のようなものですべてのインスタンスを変更したことを確認してください。

find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \
    xargs egrep -e 'System\.out\.println[(][)]' | wc -l

それはあなたにゼロを与えるはずです。

次に、2 番目の egrep の正規表現を「log4j」に置き換えると、変更した行数が wc -l で返されます。

HTH。

乾杯、

ロブ

于 2008-10-22T19:53:02.873 に答える