2012-03-05 2 views
2

Это скорее вопрос конфигурации, чем вопрос программирования. Если есть лучшее место для публикации этого сообщения, пожалуйста, перенаправьте меня.SVN Ошибка авторизации при доступе к репозиторию

У меня возникает ошибка авторизации при попытке импортировать проект с TortoiseSVN. Я контролирую клиент (мой ПК) и репозиторий SVN (другой ПК в сети без маршрутизации). Клиент и сервер находятся в Windows 7. Для проверки имен пользователей и паролей есть Active Directory (я не контролирую). Я могу войти в систему как на клиент, так и на сервер.

Сервер работает как svnserve как служба Windows. У меня есть два репозитория на сервере, один в c:\repositories\repo1, который является зеркалом другого репозитория. Он обновляет и svnsync и работает отлично. Второй - c:\repositories\repo2 и должен быть тестовым хранилищем для тестирования интеграции. Я не успел записать этот второй репозиторий.

Я использую URL svn://<pc_name>/repo2/ в качестве корня для импорта. Когда я нажимаю правой кнопкой мыши на папку проекта на моем клиенте и перехожу в Tortoise Import, я помещаю svn://<pc_name>/repo2/project1 в качестве URL-адреса.

На сервере, я имею в <repo2_folder>conf/svnserve.conf:

anon-access = write 
auth-access = write 
password-db = passwd 
authz-db = authz 

(я попытался anon-access = read тоже.) В PASSWD у меня есть имя пользователя и пароль. В authz у меня есть:

[repository:/repo1] 
* = r 

[repository:/repo2] 
<username>= rw 

Я пробовал каждую комбинацию, о которой я могу думать, и я все еще получаю авторизационную ошибку. Есть идеи?

EDIT:

Это не имеет ничего общего с TortoiseSVN. Я могу получить ту же проблему без нее:

C:\>svn list svn://pc0000/repo2 --username ksnortum --password xxxxxxxxx 
svn: Authorization failed 
+0

Вы можете ** видеть ** пустую репо2 с TSVN? Боюсь, за 2 репозиции на 1 демона ваш путь может быть плохим. –

+0

С anon-access = write не выполняется аутентификация –

+0

@ Lazy Barger: да, я вижу repo2, и он пуст. Я нашел статью о двух репозиториях и одном демоне (услуга в этом случае), поэтому он должен работать хотя бы один раз! ;-) – ksnortum

ответ

0

Вы должны установить anon-access = none. Вы НЕ хотите разрешать анонимный доступ. С настройками, которые у вас установлены, ваш сервер никогда не будет оспаривать вас для учетных данных, и поэтому ваши правила доступа никогда не будут выполнены.

Пока вы можете предоставить учетные данные в командной строке, клиент не может «нажимать» учетные данные на сервер. Он будет использовать эти учетные данные только в том случае, если сервер справится с этим.

+0

Я изменил 'anon-access = none' в' repo2/conf/svnserve.conf'. Я перезапустил службу svnserve Windows. На клиентском ПК я напечатал 'svn list svn: // /repo2'. У меня не было разрешения на авторизацию. Я получил ошибку с авторизацией. – ksnortum

+0

Есть ли причина, по которой вы используете svnserve?Apache проще, ИМО. Вы можете установить CollabNet Subversion Edge, который является бесплатным, и он обрабатывает все эти детали для вас. Я отмечаю, что синтаксис вашего файла authz неверен. Записи должны выглядеть как [repos1: /] –

+0

Я использовал svnserve, потому что он был представлен как лучший, простой сервер. У меня есть Apache на сервере, и я могу попробовать, так как это не работает. Я также заметил проблему раздела репо. Что такое «имя репозитория»? Что-то я придумал? У меня есть два репозитория, поэтому мне понадобится '[foo:/repo1 /]' и '[bar:/repo2 /]'. – ksnortum

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