Как лучше всего увидеть, какие файлы заблокированы в Subversion? - PullRequest
40 голосов
/ 12 ноября 2008

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

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

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

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

Ответы [ 4 ]

34 голосов
/ 12 ноября 2008

Вам нужна команда svnadmin lslocks.

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

22 голосов
/ 12 ноября 2008

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

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

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

21 голосов
/ 20 марта 2012

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

, например

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

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

21 голосов
/ 22 июля 2009

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

...