Ошибка создания ветки или тега в SVN
После обновления до SVN 1.8 (на VisualSVN Server 2.6.2), когда я пытаюсь создать ветку (или тег), я получаю эту ошибку:
Не удалось скопировать /svn/[путь] из-за сбоя предварительного условия на источнике (например, блокировки). [424, #0]
Произошла ошибка на другом ресурсе, препятствующая запрошенной операции на этом ресурсе. [424, # 0]
Это происходит только в одном репозитории - я обновил еще два, и они работают безупречно, то есть: мы можем нормально разветвляться и метиться. Есть идеи, что может вызвать это?
2 ответа
Оказывается, сообщение об ошибке было правильным о наличии блокировки где-то в багажнике.
Как ни странно, замок не был виден моему клиенту (TortoiseSVN) - ни Release Lock
ни Cleanup
Командование сообщило об этом. Я старался svnadmin lslocks
и вот, он перечислил один файл конфигурации xml, заблокированный в... январе 2012 года.
Похоже, что обновление с SVN 1.6 до 1.8 каким-то образом вызвало возвращение этой древней блокировки. С помощью svnadmin rmlocks
на этом файле решена проблема и ветвление / пометка больше не дает сбоя. Просто чтобы убедиться, что я попытался заблокировать / разблокировать файл через TortoiseSVN, и теперь все работает нормально, то есть: список блокировок и т. Д.
Извините, я не могу предложить более логичное объяснение этой проблемы, за исключением того, что, возможно, старые версии блокировок не были обновлены должным образом, и / или TortoiseSVN не обрабатывает обновленные блокировки правильно.
Это известная ошибка, появившаяся в модуле Apache HTTP Server 2.2.25 mod_dav. Обходной путь для этой ошибки будет доступен в следующем выпуске патча VisualSVN Server; он будет выпущен в то же время, что и Apache Subversion 1.8.3.
В качестве возможного обходного пути вы можете пометить ветку svn copy
с помощью file://
протокол на сервере (другими словами, используйте локальный URL с file://
Протокол). Это не рекомендуется, поскольку требуется полный доступ к серверу и репозиторию сервера, только администратор сервера должен выполнить это действие.