О, мальчик, это будет интересная статистика.
Если вы оцениваете своих разработчиков с помощью этого метода, вы будете поощрять разработчиков заставлять много изменений и кода. Будет ли это использоваться для бонусов? Король-оркер Дилберта Уолли хотел бы этого. Он напишет себе Ferrari на 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 для --xml; не знал этого. Делает парсинг проще на порядок. –