10

Git リポジトリを取得してスクリプトを実行し、コード ベースの行数と、それに貢献した各作成者の割合を生成することができれば、すばらしいと思いました。

基本的に、私は一種の競争力のあるコーダーであるため、(現在の HEAD で) 書いた行数がパートナーよりも多いかどうかを個人的な指標で確認したいと考えています。「現在のコードベースの % を書きました」と言うのは楽しい統計です。

誰もこれをやろうと思ったことはありませんか?方法を探しましたが、私のシェル スクリプトは最適ではないため、1 人では実行できませんでした。

4

3 に答える 3

1

の出力を解析してみることができますgit-blame。このコマンドは、ファイルの各行を最後に編集した人に与えます。

この例はあなたが望むものではありませんが、私はそれがあなたにアイデアを与えると思います:

git blame -e the/file | awk -F '<|>' '{print $2}' | sort | uniq -c

これにより、作成者の電子メールアドレスと、ファイルに対して最後に変更した行数が出力されます。次に例を示します。

     47 foo@bar.com
  34712 blah@baz.com

リポジトリ全体で実行するには、次のようにします。

git ls-files | while read f; do git blame -e $f; done | awk -F '<|>' '{print $2}' | sort | uniq -c

ここでの考え方は、最初にgit ls-filesを使用してファイルのリストを生成し、次に各ファイルで上記のスニペットを実行することです(ここで説明したスニペットを使用)。これを大規模なコードベースで実行している場合は、パイプを使用するのではなく、中間結果を一時ファイルに保存することをお勧めします。

于 2012-04-20T07:05:57.840 に答える
1

おそらくgitdmが必要です。必要なことを正確に行うことができます。Mahara プロジェクトで貢献統計を生成するために使用します。

READMEが示唆することをするだけです:

「who write 2.6.x」LWN 記事を生成するために使用される典型的なコマンド ラインは次のようになります。

git log -p -M v2.6.19..v2.6.20 |  gitdm -u -s -a -o results -h results.html

独自の目的に合わせてカスタマイズすることもできます。

于 2012-04-20T11:35:25.390 に答える
1

「どの Git commit stats are easy to pull 」に示されているように、git log を使用できます。

または、クラスで見られるように、変更された行数を検査するGit Lookatgitプロジェクトを見ることができます。gitauthor.rb

于 2012-04-20T06:10:29.397 に答える