SVN - Получение полезной информации - PullRequest
6 голосов
/ 02 ноября 2008

Мы используем Subversion. Мы хотели бы

1. search across all commit messages ?
2. monitor the commits on certain important files ?
3. identify files that are never/rarely used ?
4. identify files that are most frequently changed ?         
5. identify files that most developers have accessed ?
6. identify files that have been committed together many number of times ?

Использование этих данных может быть использовано для отсеивания сообщений типа этих , для рефакторинга кода и очистки проекта от неиспользуемых файлов.

Пожалуйста, предложите инструменты для достижения того же ..

РЕДАКТИРОВАТЬ: Мы запускаем SVN на Windows 2003.

Ответы [ 5 ]

5 голосов
/ 02 ноября 2008

StatSVN сможет сделать для вас большую часть этого. Однако вам потребуется настроить запланированное задание, чтобы запустить его через хранилище, или вы можете интегрировать его в сборку Ant, если вам случится это использовать.

Однако для некоторых из более сложных задач, таких как номер 6 в вашем списке, вероятно, потребуется индивидуальное решение. В качестве альтернативы, поскольку StatSVN является открытым исходным кодом, вы можете внести в него необходимые изменения и отправить их обратно в проект.

3 голосов
/ 02 ноября 2008

Еще один инструмент, на который стоит обратить внимание: ViewVC . В последней версии есть возможность поддерживать базу данных коммитов. Это позволяет выполнять поиск по всем сообщениям фиксации и просматривать список изменений в файле или файлах в каталоге, отфильтрованном по пользователю, времени или регулярному выражению. Он также поддерживает RSS-каналы, которые позволяют в той или иной форме уведомлять отдельные файлы.

Для 3, 4 и 5 в вашем списке StatSVN, который упоминается в других ответах, должен быть в состоянии сделать это. Для коммерческого решения есть FishEye от Atlassian.

В нашем репозитории мы используем комбинацию ViewVC и StatSVN, первый из которых используется для просмотра и поиска сообщений коммитов, а второй - для просмотра статистики.

1 голос
/ 02 ноября 2008

Вы можете сделать это с помощью клиента командной строки Subversion и некоторых скриптов (Ruby или Python), но не ждите, что люди здесь напишут код для вас. Детали реализации будут зависеть от того, как часто вы хотите запускать статистику и насколько велик ваш репо.

При обработке данных из клиента командной строки Subversion вам может оказаться проще использовать параметр --xml (принятый командами "log" и "info"), который выводит данные в формате XML.

1. search across all commit messages ?

Запустите «svn log -v --xml» и запустите текстовый поиск по полученному XML (или его части). Вы можете указать, какой набор сообщений коммита вы хотите искать.

2. monitor the commits on certain important files ?

Это реализовано с помощью триггеров фиксации. См. Документацию сервера Subversion.

3. identify files that are never/rarely used ?
4. identify files that are most frequently changed ?         
5. identify files that most developers have accessed ?
6. identify files that have been committed together many number of times ?

Все это может быть реализовано с использованием вывода из "svn log --xml" и последующей обработки полученных XML-данных.

1 голос
/ 02 ноября 2008

В .NET land есть библиотека SharpSvn , которую вы можете использовать. Чтобы достичь того, чего вы хотите, вам, однако, нужно будет собрать все сообщения журнала и разобрать их самостоятельно.

1 голос
/ 02 ноября 2008

Какую платформу вы используете? В Linux быстрый скрипт оболочки, использующий sed, должен добиться цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...