Вопрос

Я пытаюсь найти способ удалить блокировки зомби с помощью инструментов командной строки Subversion.Конечная цель — сделать это с помощью скрипта-перехватчика, но мне не удалось разработать командную строку, которую можно было бы использовать, когда у вас есть только путь к физическому хранилищу.(Похоже, что использование rmlocks svnadmin работает только для блокировок, существующих в версии HEAD.)

В идеале я хотел бы сделать это с помощью сценария перехвата после фиксации с использованием инструментов командной строки.(Мне известен сценарий Python для этой цели, но мы бы предпочли не устанавливать Python на этот сервер для этого единственного использования.) Мы являемся магазином .NET, поэтому создание инструмента с библиотекой SharpSVN также является возможно, но единственная возможность разблокировки, похоже, есть в классе SVNClient.

Итак, на самом деле это два вопроса:Есть ли способ сделать это с помощью инструментов командной строки?Если нет, есть ли способ сделать это с помощью SharpSVN?(Или, возможно, другая библиотека?)

== Обновление от 3 декабря 2012 г. ==

Недавно мне пришлось вернуться к этой проблеме, и я обнаружил, что этот вопрос все еще привлекает трафик.Сценарий Python, упомянутый в исходном вопросе, и ответ Дона с тех пор переместились на: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (Я предполагаю, что это то, что ищет большинство людей.)

По иронии судьбы, несмотря на то, что репозиторий переехал в Linux, мы используем решение C.

Это было полезно?

Решение 2

Похоже, ответ такой: «Отсюда туда не попасть».

  • Svnadmin предоставляет командную строку для снятия блокировок с указанием пути к хранилищу, но, похоже, она не работает с блокировками-зомби.
  • SharpSVN в основном работает на стороне клиента;у него есть несколько методов для подключения к пути к репозиторию, но они (согласно документации) в основном предназначены для использования в модульных тестах библиотеки.

Итак, перепишите скрипт Python на C, используя библиотеку Subversion API.

Другие советы

Есть Питон сценарий (ссылка здесь: http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2369399).Я бы либо использовал это, либо перевел на .NET, если вам нужно.

Если вы знаете путь к хранилищу удаленного файла, заблокированного зомби, это настолько просто, что я сначала не мог в это поверить:

svn unlock --force https://path/to/my/file

Это работает, даже если удаленный файл (по определению) не существует в голове репозитория.Пересмотр привязки не требуется и не допускается.А force Опция необходима только в том случае, если блокировка принадлежит другому пользователю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top