Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: ShaneОтветов: 4

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

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

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

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

  • Я знаю, что вы это знаете, но эти блокировки будут убийцей производительности в общих областях кода. Инструменты слияния сейчас довольно хороши, а слияние изменений проще, чем кажется вашему начальнику. Tom Leys 12.11.2008
  • @TomLeys У вас могут быть права в случае исходного кода или любого хорошего объединяемого типа файла. Но это не всегда так, например, иногда SVN используется для управления файлами данных или офисными документами, ни один из них не имеет легко доступных, широко используемых инструментов слияния. peterh 26.04.2016
  • Как насчет слияния файлов Informatica (хранящихся как xml) в SVN? Думаю, единственный выход - svn lock ... не так ли? Tarmit 04.01.2017

svnadministration

Ответы

Ответ 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 Больше подробностей

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы