Использование SVNSERVE для размещения сервера Subversion, файлов конфигурации и т. Д. - PullRequest
1 голос
/ 26 апреля 2009

У меня сервер SVNSERVE, настроенный для размещения нескольких репозиториев.

Короткий вопрос здесь

Мой вопрос на самом деле такой: у меня есть authz, passwd и svnserve.conf в главном каталоге за пределами репозиториев, и это, похоже, работает, в том смысле, что изменения здесь дадут или запретят доступ к соответствующим репозиториям .

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


Предварительное решение

Хорошо, похоже, что веб-страница, на которую я ссылался ниже ( эта страница ), в конце концов, была правильной. Отредактировав локальный файл репозитория svnserve.conf и добавив одну строку:

anon-access=none

тогда похоже на работу. Обратите внимание, что это все, что я сделал. Кажется, что основной глобальный файл svnserve.conf вне репозиториев и связанные с ним файлы все еще содержат всю необходимую информацию, поскольку изменения здесь по-прежнему предоставляют или запрещают пользователям доступ к репозиториям, но добавление этой строки заставило TeamCity перестать жаловаться.

Выполнение контрольных тестов прямо сейчас после повторного удаления строки, просто чтобы проверить, не сработает ли она.


Длинная история здесь

Структура каталогов выглядит следующим образом:

E:
 +-- Repositories
     +-- LVK
     +-- PrivateProjects
     +-- ExternalProjects
     +-- XYZ
     +-- etc.

Теперь я в каталоге Repositories, у меня есть следующие файлы (содержимое файла ниже):

svnserve.conf
authz
passwd

svnserve.conf выглядит так:

[general]
password-db=passwd
authz-db=authz
realm=VKarlsen Subversion Server
anon-access=read
auth-access=write

authz выглядит так:

[/]
lassevk=rw
*=r

[LVK:/]
lassevk=rw
*=r

[PresentationMode:/]
lassevk=rw
*=

и некоторые другие репозитории и т. Д.

и passwd выглядит так (хотя, очевидно, не правильный пароль):

[users]
lassevk=MYSECRETPASSWORD

Теперь, что меня интересует, так это то, что TeamCity жалуется с сообщением об ошибке, которое гласит: «Сбой для корня 'svn: //localhost/PrivateProjects/VS.NET/LVK_ReleaseScript' # 2: svn: Не авторизован открыть корень операции редактирования ".

Я нашел эту страницу здесь , но там говорится, чтобы убедиться, что в вашем файле svnserve.conf есть следующее:

anon-access=none

У меня, однако, есть anon-access=read в файле, но мой вопрос на самом деле такой: у каждого хранилища также есть подкаталог conf с точно такими же файлами, как указано выше, но не с тем же содержимым. Фактически, кроме установки значения Realm в то же самое, что и мой основной файл svnserve.conf, файлы полностью пусты.

Это правильно? Нужно ли копировать соответствующие фрагменты из основного файла svnserve.conf в файлы конфигурации для каждого репозитория?

Например, вот содержимое трех файлов в репозитории LVK:

AuthZ:

[groups]

[/]

ПАРОЛЬ:

[users]

svnserve.conf:

[general]
realm = VKarlsen Subversion Server

1 Ответ

1 голос
/ 27 апреля 2009

Я всегда думал, что вам нужно иметь по крайней мере svnserve.conf внутри подкаталога conf/ каждого репозитория (поскольку SVN не будет автоматически знать, чтобы искать его где-либо еще). Это настройка, которую я использую со своими собственными репозиториями: у каждого есть своя собственная копия svnserve.conf, но есть только один глобальный passwd и authz, к которому все файлы svnserve.conf относятся по абсолютному пути.

...