svnsync не работает: изменение Revprop заблокировано перехватчиком pre-revprop - PullRequest
10 голосов
/ 23 августа 2010

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

У меня есть две машины (я изменил имена, но не другую информацию)

  • INITIAL: пользовательский Linux с Subversion 1.4.5 (r25188) (как сообщает svnadmin).С этой машины я пытаюсь выполнить синхронизацию в хранилище под названием SOURCE.Доступ к этому хранилищу можно получить по протоколу http, и был создан пользователь svnsync.В SOURCE/hooks существует только один исполняемый файл: pre-revprops-change.
  • FINAL: Ubuntu с Subversion 1.6.6 (r40053) (как сообщает svnadmin).На этой машине я буду синхронизироваться с хранилищем svn16.Доступ к этому хранилищу можно получить по протоколу http, и был создан пользователь svnsync.В svn16/hooks исполняемыми файлами являются pre-revprop-change и start-commit.На этом компьютере dav_svn.conf содержит директиву SVNParentPath /var/svn, делающую все репозитории доступными под http://FINAL/svn

Я убедился, что URL и login / pwd правильные, открыв каждый URL репозитория в моем браузере ивыдача диалогов аутентификации, которые, казалось, всегда работали.

Я пытаюсь выполнить следующую команду

svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE

Но в итоге всегда отображается

Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL
Password for 'ubunut-user':
Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL
Username: svnsync
Password for 'svnsync':
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged
svnsync: Error setting property 'sync-lock':
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.

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

Ответы [ 3 ]

14 голосов
/ 23 августа 2010

Оказывается, я был глупее, чем тупой.

В таком случае ошибки, самый простой способ убедиться, что все работает правильно, - это вызвать различные хуки вручную.* ловушка была неправильно написана с

"#!/bin/sh"
exit 0

Очевидно, что удаление " решило проблему.

12 голосов
/ 22 апреля 2012

Небольшое замечание, чтобы избежать очень частой ошибки.

В случае такой ошибки сначала убедитесь, что файл pre-revprops-change является исполняемым.Если нет, выполните:

chmod +x $DEST_SVN_REPO/hooks/pre-revprops-change,

, где $ DEST_SVN_REPO - путь к хранилищу назначения.

1 голос
/ 04 ноября 2013

смотри здесь: https://svn.apache.org/repos/asf/subversion/trunk/notes/svnsync.txt

Ваша целевая конфигурация не удалась. Фаза INIT (копирование атрибутов) должна быть выполнена. Внутри скрипта pre-revprops-change вы должны указать имя пользователя, которому разрешено обновляться. в противном случае пункт назначения будет поврежден пользователями. SVN не может работать как активно-активные узлы. обычно вы настраиваете скрипт-ловушку для предотвращения каких-либо изменений пользователями. они должны иметь только один доступ.

как правило, перейти на веб-сервис суперпользователя. там это не по теме.

...