Использование SVNSERVE для размещения сервера Subversion, файлов конфигурации и т. Д.
У меня есть сервер 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 ответ
Я всегда думал, что тебе понадобится хотя бы svnserve.conf
внутри conf/
подкаталог каждого репозитория (поскольку SVN не будет автоматически искать его где-либо еще). Это настройка, которую я использую со своими собственными репозиториями: у каждого есть своя копия svnserve.conf
, но есть только один глобальный passwd
а также authz
к которому все svnserve.conf
файлы ссылаются по абсолютному пути.