Наконец-то я заставил мою группу перейти с SourceSafe на Subversion. К сожалению, мой менеджер по-прежнему хочет использовать эксклюзивные блокировки для каждого файла. Поэтому я установил свойство svn: needs-lock для каждого файла и создал ловушку перед фиксацией, чтобы убедиться, что свойство остается установленным.
Мы запускаем Subversion на сервере Linux. Большинство из нас используют компьютеры с Windows, а некоторые - Mac. Мы используем различные клиенты SVN (TortoiseSVN, SmartSVN, Subclipse и т. Д.).
Теперь нам нужен хороший / простой способ увидеть все файлы, которые в настоящее время заблокированы во всем репозитории (и кто их заблокировал). Я немного покопался в Tortoise и Subclipse, но не нашел то, что ищу. В наших проектах много подкаталогов на нескольких уровнях, поэтому просмотр каждого отдельного каталога займет слишком много времени.
Я бы хотел получить один отчет, который я могу запустить, в котором будет перечислено все, что заблокировано в данный момент, и кто это заблокировал. Как лучше всего получить такую информацию?
Ответ 1 · рейтинг 34 · Greg Hewgill
Вы ищете _1 _ команда.
Я настроил это на работе, потому что мы храним некоторые документы Word в нашем репозитории Subversion (с svn:needs-lock). У меня есть задание cron, которое каждый день проверяет список блокировок и отправляет по электронной почте отчет обо всех блокировках старше 7 дней всей команде. Таким образом мы можем определить, кто бездельничает и долгое время сидит на заблокированной копии документа.
Ответ 2 · рейтинг 22 · Eric Z Beard
Возможно, это не тот ответ, который вы ищете, но вам следует попытаться убедить менеджера в том, что блокировки на самом деле - не лучшая практика разработки. На эту тему написано много, поэтому я не буду здесь все повторять.
Когда вы переходите от среды блокировки к среде без принудительных блокировок проверки, сначала вы думаете, что это приведет к хаосу, но на самом деле это не так. SVN хорош в объединении изменений, когда два человека работают над одним и тем же файлом, и даже если у вас возникают конфликты, их не так уж плохо исправить.
Гораздо лучше, чем ждать парня, который пошел обедать с извлеченным критически важным файлом, или, что еще хуже, уехал в отпуск.
Ответ 3 · рейтинг 22 · Community
Чтобы увидеть, какие блокировки держите вы и другие пользователи, вы можете использовать TortoiseSVN → Проверить наличие изменений .... Локальные токены блокировки отображаются немедленно. Чтобы проверить наличие блокировок, хранимых другими (и увидеть, не сломаны ли или украдены ли какие-либо из ваших блокировок), вам нужно нажать на Проверить репозиторий.
Ответ 4 · рейтинг 22 · ashirley
Вы можете обнаружить блокировки из локальной кассы, используя svn status --show-updates, который поставит O перед всеми файлами, заблокированными на сервере.
e.g.
$ svn status --show-updates
O 279532 LockedFile
? UncommittedFile
M 279532 ModifiedFile
см. svnbook Больше подробностей