Ошибка аутентификации при выполнении ловушки после фиксации в SVN - PullRequest
1 голос
/ 19 января 2010

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

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

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

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

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

htpasswd dav_svn.passwd nobody

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

Authentication realm:

Обновление:

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

Allow from 127.0.0.1
Satisfy any

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

Ответы [ 2 ]

3 голосов
/ 19 января 2010

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

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

1 голос
/ 20 января 2010

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

Allow from 127.0.0.1
Require valid-user
Satisfy any
...