Подтвердить что ты не робот

Каков наилучший способ увидеть, какие файлы заблокированы в Subversion?

Наконец, я получил свою группу, чтобы переключиться с SourceSafe на Subversion. К сожалению, мой менеджер по-прежнему хочет использовать эксклюзивные блокировки для каждого отдельного файла. Поэтому я установил свойство svn: needs-lock для каждого файла и создал крюк pre-commit, чтобы убедиться, что свойство остается установленным.

Мы запускаем Subversion на сервере Linux. Большинство из нас используют Windows-машины и несколько компьютеров Mac. Мы используем различные клиенты SVN (TortoiseSVN, SmartSVN, Subclipse и т.д.).

Теперь нам нужен хороший/простой способ увидеть все файлы, которые в настоящее время заблокированы во всем хранилище (и кто их заблокировал). Я немного пошутил в Tortoise и Subclipse, но не нашел того, что искал. В наших проектах есть много поддиректорий, которые на несколько уровней глубоки, поэтому для каждого отдельного каталога было бы слишком много времени.

Я бы хотел, чтобы один отчет, который я могу запустить, перечисляет все, что в данный момент заблокировано, и кто заблокировал его. Каков наилучший способ получить этот тип информации?

4b9b3361

Ответ 1

Что вы ищете, это команда svnadmin lslocks.

У меня есть это на работе, потому что мы сохраняем некоторые документы Word в нашем репозитории Subversion (с svn:needs-lock). У меня есть задание cron, которое каждый день проверяет список блокировок и сообщений электронной почты о всех блокировках старше 7 дней для всей команды. Таким образом, мы можем сказать, кто слабеет и долго сидит на закрытой копии документа.

Ответ 2

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

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

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

Ответ 3

Чтобы узнать, какие блокировки вы и другие удерживаете, вы можете использовать TortoiseSVN → Проверить наличие изменений.... Локальные токены блокировки отображаются немедленно. Чтобы проверить блокировки, хранящиеся другими (и чтобы узнать, не сломаны или украдены какие-либо ваши блокировки), вам нужно нажать "Проверить репозиторий".

Ответ 4

Вы можете обнаружить блокировки из локальной проверки с помощью svn status --show-updates, которая поместит O перед всеми файлами, которые заблокированы на сервере.

например.

$ svn status --show-updates
     O      279532   LockedFile
?                    UncommittedFile
M           279532   ModifiedFile

см. svnbook для более подробной информации