Mercurial リポジトリで一定期間に変更されたコードの行数を計算する優れたツールはありますか? statsvnの行に沿ったものは素晴らしいですが、6 か月以内に変更されたコードの行数をカウントするものであれば何でも構いません (hg log への引数の巧妙な組み合わせを含む)。ありがとう。
PS: この数値を測定する目的については議論しないでください ;)
Mercurial リポジトリで一定期間に変更されたコードの行数を計算する優れたツールはありますか? statsvnの行に沿ったものは素晴らしいですが、6 か月以内に変更されたコードの行数をカウントするものであれば何でも構いません (hg log への引数の巧妙な組み合わせを含む)。ありがとう。
PS: この数値を測定する目的については議論しないでください ;)
hg churn 拡張機能が必要です。
hg activityまたはhg chartで視覚的な結果を得ることができます。
編集:両方ともhg diff
、これを行うことができるオプションをhg log
サポートしてい--stat
ますが、より良く、より迅速です。
lines
変更された行 (コードの行とは限らない) をカウントするために呼び出されるエイリアスを作成しました。このエイリアスを .hgrc ファイルに入れてみてください:
[alias]
lines = !echo `hg log -pr $@ | grep "^+" | wc -l` Additions; echo `hg log -pr $@ | grep "^-" | wc -l` Deletions;
次に、最初にリビジョンを渡し、その後にオプションの引数を渡します。
hg lines tip
またhg lines 123:456 -u brian
空白のみの変更を除いて、変更された行数を知りたい場合があります。これには、diff -w
の代わりに belowを使用する必要がありlog -p
ます。linesw
これにエイリアスを設定しました:
#ignore whitespace
linesw = ![[ $1 =~ : ]] && r=$1 || r="$1~1:$1"; echo `hg diff -wr $r | grep "^+\([^+]\|$\)" | wc -l` Additions; echo `hg diff -wr $r | grep "^-\([^-]\|$\)" | wc -l` Deletions;
hg linesw tip
またhg lines 123:456
diff
と の動作が異なるため、動作がわずかに異なることに注意してくださいlog
。たとえば、パラメータを受け取りますlog
が、取りません。範囲を渡すと、範囲で指定された最初のリビジョンでコミットされた変更が表示されますが、そうではありません。--user
diff
log
diff
これは、bash を使用してのみテストされています。
私はこれを行う必要があり、hg churn 拡張機能と同様のソリューションにかなりの時間を費やしました。
最終的に、私にとって最も効果的なのは CLOC (Count Lines of Code) であることがわかりました: http://cloc.sourceforge.net/
プロジェクトの 2 つのバージョンを含む 2 つのフォルダーを指定すると、同じ、変更、追加、削除されたすべての行がカウントされます。複数の言語を認識し、コード、コメント、空白行を箇条書きにします。
これを使用するには、コードの 2 つのバージョンを Hg から 2 つの並列フォルダーに取り出し、 cloc --diff --ignore-whitespace を使用しました。