2009-10-08 13 views
23

私は、今年作成したコードの行数を計算することを任されています。いくつかの理由でそれほどエキサイティングではありませんが、それは良いの質問をすることができるように思えます。期間中に修正されたコードの行数はいくつですか?

好きなバージョンのコントロールツールでは、修正されたコードの行数はどのように分かりますか?私の特別な答えでは、空白行とコメントは、答えを決定するために割り当てられた時間を単純化するためにカウントされますが、詳しく説明することは自由です。

私の場合、私はsvnを使用しているので、svn logとsvn diffが出力するすべての---とその他のmisc出力を取り除くつもりです。

+16

誰かがこの質問をしているという事実は、この測定基準が何かを意味すると考えることを心配しています。 – recursive

+5

あなたの上司はビル・ルンベルクですか? – BobbyShaftoe

+0

@再帰 - ジェフアトウッドは何かを測定すると言います。 http://www.codinghorror.com/blog/archives/000637.html – Maslow

答えて

27

StatSVNを使用してください。私は仕事でそれを使用し、それは素晴らしいです、それは月に開発者によってLOCを分解するでしょう。それは、かなりのグラフを描画し、何時の曜日と、ほとんどのコードをチェックインするかを教えてくれます。それはあなたが知る必要があることを正確に教えてくれます。

+0

私は今それを実行している、私はそれがどのように分岐を扱うか分からない。 –

+0

@Nathan:私はそれを試しました。デフォルトでは、コードが入力されたかのようにコードが分岐します。しかし、私が見たことから、ブランチを完全に無視することは可能であるようです。次に、トランクにマージされたコードだけが表示されます。しかし、私はドキュメントをすばやく閲覧しただけです... – sbi

3

Fisheyeは、開発者ごとにコミットされたコードの行数を示します。あなたにはこれについてのきれいなグラフを与えることができる素晴らしいチャート機能があります。

-1

Clearcaseのでは、設定の仕様を取得し、追加します。

time <date-time> 
<rules for choosing branches or labels> 
end time 

は、2番目のビューを作成し、両者を比較します。複数の開発者が同じファイルを扱っている場合、私は手がかりがありません。 Clearcaseを使用することで私が興奮しているとは言えません。

-2

Subversionを使用している場合は、svn logコマンドに--xmlスイッチを指定すると、そこからコード行を引き出すことができます。あなたはsvnログのオプションをsvnヘルプログを使って見ることができます。あなたの出力がxmlであるので、このxmlを実行し、コード内の行数を集計してそこから行くことができます。

+2

- xmlは-v(冗長)オプションでもこの情報を表示しません。 – Antonio

1

「削除された行数、追加された行数、または選択した期間だけ変更された行数」などのタスクも解決しようとしました。だから私はシンプルなシェルスクリプトを書いた(Linuxのみ)。コード変更に関するいくつかのシンプルな統計を収集します。あなたがここで見つけることが詳細と共有スクリプト:

http://cyber-fall.blogspot.com/2011/10/tools-linux-svn-generate-statistic.html

は、それがあなたにして他の人に助けを願っています!

8

最も簡単な解決策:

svn diff -x --ignore-eol-style -x -w http://svn/tags/releases/1.0 http://svn/tags/releases/2.0/ |diffstat 

これは非常に初歩的であるというように空白行を挿入を除外していませんが、おそらくそれは十分に良いことですか?

+0

これは修正された行を2回出力します(追加と削除の両方) – ricab

0

あなたはCVSで立ち往生している場合:

cvs annotate > annotate.txt 
rem remove the portion before the name 
sed "s/^[0-9. (]*//" annotate.txt > annotate2.txt 
rem remove the portion after the name 
sed "s/[ ].*$//" annotate2.txt > annotate3.txt 
sort annotate3.txt > annotate4.txt 
uniq -c annotate4.txt > annotate5.txt 

http://jamesjava.blogspot.com/2007/01/who-has-changed-most-lines-in-cvs.html

4

ヒット・オブ・コード(あなたが探しているまさにん)メトリックを使用してみてください。このブログの記事で説明されているを使用してデータを収集することができます:Hits-of-Code Instead of SLoC

関連する問題