Хотя rrirower технически прав в отношении svnadmin lslocks
, вы можете подумать о возможных альтернативных путях
Единовременное действие "Получить полный WC" (может быть получено на локальной ФС сервера, то есть относительно быстро и перемещено в виде дерева файлов в конечный пункт назначения) приведет вас к svn st -u
(все заблокированы в файлах репо)
svn ls -R -v /REPO/ROOT
С помощью --verbose для каждого элемента будут отображаться следующие поля:
Revision number of the last commit
Author of the last commit
If locked, the letter 'O'. (Use 'svn info URL' to see details)
Size (in bytes)
Date and time of the last commit
С обоими методами вы получите только указание на блокировку (имя заблокированного файла), знак, который вам нужно будет расширить с помощью svn info URL/TO/LOCKED/FILE
и извлечь Lock Owner: XXX
строку из вывода (возможно, использовать XML-вывод командных и XML-осведомленных инструментов)
Ответьте на альтернативный вопрос
Да, вы можете (до некоторой степени)
Перед разблокировкой
Подготовьте WC с разреженными каталогами (только с каталогами , в которых есть файлы с вашими замками)
размыкание
Измените один заблокированный файл в WC и зафиксируйте весь WC. Согласно SVN Book
После успешного завершения фиксации снимаются все упомянутые блокировки репозитория, даже для файлов, которые не были зафиксированы.
Это означает, что пользователи не должны быть слишком небрежными в отношении блокировки или слишком долго удерживать блокировки. Если Гарри случайно заблокировал 30 файлов в каталоге с именем images, потому что он не уверен, какие файлы ему нужно изменить, но изменяет только четыре из этих файлов, когда он запускает svn commit images, процесс все равно снимет все 30 блокировок.
Я ожидаю, что все файлы будут разблокированы
Другой способ разблокировки - использование svn unlock --target ARG
, где ARG содержит все URL ваших блокировок (URL на строку), будет работать даже без WC