git-blame
の出力を解析することができます。このコマンドは、ファイルの各行を最後に編集した人物を指定します。
この例では、正確に何をしたいではないですが、私はそれはあなたのアイデアを与えると思う:
git blame -e the/file | awk -F '<|>' '{print $2}' | sort | uniq -c
これは、一緒に彼らはAのために最後に変更された行数と著者の電子メールアドレスを表示しますたとえば、ファイル:
47 [email protected]
34712 [email protected]
が、それは全体のリポジトリ上で実行するようにするには、あなたがこのような何かを行うことができます。
git ls-files | while read f; do git blame -e $f; done | awk -F '<|>' '{print $2}' | sort | uniq -c
ここで考えているのは、最初にgit ls-filesを使ってファイルのリストを生成してから、上記のスニペットをそれぞれのファイル(hereというスニペットを使って)で実行することです。これを大規模なコードベースで実行している場合は、パイプを使用するのではなく、中間結果を一時ファイルに保存することができます。
出典
2012-04-20 07:05:57
Job
これまでに聞いたことがあると思います。「コードの行によるプログラミングの進捗状況を測定することは、重量による航空機の建物の進行状況を測定するようなものです。 – Etaoin
@エオイン:私は+1000を欲しいと思っています。 :-) – torek