2010-01-19 2 views
1

У меня есть крюк post-commit SVN, который обновляет рабочую копию, когда фиксация производится в репозитории. После совершения крючка выполняет следующую команду:Ошибка аутентификации при выполнении крюка после фиксации в SVN

/usr/bin/svn update /path/to/working/copy 

Он работал хорошо, пока я не позволил Apache mod_dav Require valid-user директивы. Аутентификация прекрасна при использовании клиента tortoisesvn для окон, поскольку он запрашивает ваше имя пользователя и пароль и сохраняет детали. Но поскольку это неинтерактивный процесс, имя пользователя и пароль не предоставляются и обновление не выполняется.

Apache работает как пользователь и группа nobody и nogroup Это также пользователь и группа, которые владеют репозиториями и рабочими копиями.

nobody пользователь не имеет пароля, поскольку он не может войти в систему Это просто используется для запуска Apache и т.д. Я попытался добавить nobody в файл dav_svn.passwd, используя следующую команду:.

htpasswd dav_svn.passwd nobody 

я получаю следующее ошибка при попытке запустить после совершения сценария непосредственно в командной строке:

Authentication realm: 

Обновление:

не

Добавление следующих к dav_svn.conf:

Allow from 127.0.0.1 
Satisfy any 

устраняет проблему, но затем вызывает другой вопрос в том, что клиент TortoiseSVN больше не требует аутентификации.

ответ

3

Похоже, что Apache запрашивает пароль для вашего svn update. Что вызывает раздражение для неинтерактивного процесса. ;-)

Я думаю, вы можете переустановить свою рабочую копию, используя прямой путь к файловой системе, а не через Apache.

1

Это может помочь, поскольку это позволит серверу для доступа себя:

Allow from 127.0.0.1 
Require valid-user 
Satisfy any 
+0

Именно то, что мне было нужно. Большое спасибо. – Camsoft

+0

Оказалось, что добавление этого действительно устраняет проблему, когда скрипты post-commit не работают, но tortoisesvn больше не требуется или требует, чтобы пользователи Windows указывали имя пользователя и пароль. Поэтому я могу только догадываться, что URL-адрес веб-сайта, используемый для указания местоположения репозитория, разрешен до 127.0.0.1. – Camsoft

Смежные вопросы