ああ、それは興味深い統計になるでしょう。
この方法で開発者をランク付けすると、開発者に多くの変更やコードを吐き出すよう促すことになります。これはボーナスに使用されますか?ディルバートの牛飼いのウォーリーはこれを気に入るはずだ。彼は午後 4 時までに自分でフェラーリと書いていました。しかし、もしあなたが主張するなら...
各ファイルを解析する代わりに、関心のあるプロジェクトのルートからログを取得し、必要なリビジョンの範囲を渡すことができます。
これにより、各リビジョンをコミットした開発者の名前が取得されます。次に例を示します。
$ svn log -r1:HEAD http://server/svn/project
------------------------------------------------------------------------
r1 | david | 2011-07-12 15:18:33 -0400 (Tue, 12 Jul 2011) | 1 line
Adding directories
------------------------------------------------------------------------
r2 | bob | 2011-07-12 15:19:20 -0400 (Tue, 12 Jul 2011) | 1 line
Adding property
------------------------------------------------------------------------
r3 | mark | 2011-08-21 10:33:51 -0400 (Sun, 21 Aug 2011) | 1 line
ファイルの名前も必要な場合は、次の--verbose
パラメーターを使用できます。
$ svn log -r1:HEAD --verbose http://server/svn/project
------------------------------------------------------------------------
r1 | david | 2011-07-12 15:18:33 -0400 (Tue, 12 Jul 2011) | 1 line
Changed paths:
A /branches
A /tags
A /trunk
Adding directories
------------------------------------------------------------------------
r2 | bob | 2011-07-12 15:19:20 -0400 (Tue, 12 Jul 2011) | 1 line
Changed paths:
M /trunk
Adding property
------------------------------------------------------------------------
r3 | mark | 2011-08-21 10:33:51 -0400 (Sun, 21 Aug 2011) | 1 line
Changed paths:
A /trunk/subversion
A /trunk/subversion/control.ini
A /trunk/subversion/pre-commit-kitchen-sink-hook.html
A /trunk/subversion/pre-commit-kitchen-sink-hook.pl
A /trunk/subversion/svn-watch.html
A /trunk/subversion/svn-watch.pl
Adding files
------------------------------------------------------------------------
ただし、最も生産性の高いプログラマーを本当に知りたい場合は、コードを見ないでください。生産的な開発者は、効率の悪い同僚よりも少ないコードを書いています。優れた開発者は効率的な方法でコードの流れを編成するため、注意すべき例外はほとんどありませんが、下手な開発者は間違った方法を取り、基本的なルールに対するすべての例外を処理する必要があります。
効率的な開発者は、バグを追跡しようとして数十のファイルを変更するのではなく、バグを含む 1 つのファイルを修正します。実際、非常に優れた開発者であれば、コードではなく環境設定を変更することで問題を解決できることに気付くことさえあります。
開発分野で誰が重要な役割を果たしているかを把握したい場合は、問題追跡システムを調べてください。最も大きな問題に取り組み、最も迅速に解決しているのは誰ですか? バグのカスケードを引き起こさずに機能を追加するのは誰ですか?
プログラマーの仕事は問題を解決することであり、コードを投げることではありません。