У меня есть крюк 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 больше не требует аутентификации.
Именно то, что мне было нужно. Большое спасибо. – Camsoft
Оказалось, что добавление этого действительно устраняет проблему, когда скрипты post-commit не работают, но tortoisesvn больше не требуется или требует, чтобы пользователи Windows указывали имя пользователя и пароль. Поэтому я могу только догадываться, что URL-адрес веб-сайта, используемый для указания местоположения репозитория, разрешен до 127.0.0.1. – Camsoft