Как узнать, когда последний коммит каждого пользователя был в subversion? - PullRequest
4 голосов
/ 29 апреля 2010

У меня есть хранилище, в котором запущена Subversion. Некоторые пользователи не совершают регулярно. Я хотел бы разослать еженедельное напоминание тем, кто не совершал на прошлой неделе Можно ли определить дату последней отправки каждого пользователя?

Ответы [ 2 ]

4 голосов
/ 29 апреля 2010

Остерегайтесь того, что вы измеряете, потому что вы получите его в пиках.

Возможны две техники. Вы можете написать небольшую программу для вызова «svn log» и извлечения соответствующих имен разработчиков и времени последнего коммита. Вы можете добавить скрипт к соответствующему хуку пост-фиксации, который либо удаляет разработчика из списка адресов электронной почты, который регенерируется еженедельно, либо заменяет время последнего принятия разработчика в файле, который обрабатывается позже.

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

3 голосов
/ 29 апреля 2010

Не пытаясь определить, следует ли вам делать это или нет, следующее даст вам уникальный список пользователей, которые совершили от DATE1 до DATE2

svn log -r'{DATE1}:{DATE2}' | grep -E '\|' | cut -f2 -d'|' | sort | uniq

Где DATE1 и DATE2 отформатированы как yyyymmdd.

Я предполагаю, что как только у вас будет список пользователей, которые подтвердили свои обязательства, вы будете знать, кто не сделал этого, поскольку вы можете сравнить его с полным списком (например, diff committed_users.txt all_users.txt).

...