Subversion Edge svnsync: запрос DAV не выполнен и ошибка pre-revprop-change
Я настроил сервер Subversion Edge в Windows в рамках процесса миграции. В настоящее время я борюсь с svnsync.
При попытке выполнить команду (на главном сервере):
svnsync initialize https://main.subversion.server/svn/main.svn https://mirror.subversion.server/svn/main.svn --disable-locking --username=svnsync --password=SubversionEdge
это дает мне следующие 2 ошибки:
svnsync: E175002: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
а также
svnsync: E175002: Repository has not been enabled to accept revision propchanges; ask the administrator to create a pre-revprop-change hook
Я пробовал несколько разных хуков pre-revprop-change, но безуспешно, включая "exit /b 1"
, Я также попробовал, если это была проблема с правами (изменил пользователя, который служба использует для запуска и удостоверился, что учетная запись имела доступ ко всем необходимым файлам) Кто-нибудь имеет какие-либо идеи, как это исправить (или обойти) это?
2 ответа
Должно быть exit 0
не exit 1
см. SVNBook | ссылка на крючок pre-revprop-change:
Хук должен действительно существовать и возвращать нулевое значение выхода, прежде чем произойдет изменение свойства ревизии.
Например, достаточно поставить exit 0
в pre-revprop-change-hook целевого репозитория. Однако таким образом любой аутентифицированный и авторизованный пользователь может изменить свойства ревизии. Это не то, что вы хотите, я думаю.
Вы можете реализовать некоторую логику в скрипте ловушки, чтобы позволить только пользователю 'svnsync' изменять свойства ревизии:
IF "%3" == "svnsync" (goto :label1) else (echo "Only svnsync user can change revision properties" >&2 )
exit 1
goto :eof
:label1
exit 0
Для окон, пожалуйста, используйте pre-revprop-change-hook.bat
И проверьте, имеет ли учетная запись, например, svnsync в вашем случае, разрешение на запись в целевое хранилище.