Функция аннотации SVN является довольно мощной и позволяет быстро определить, кого отслеживать для конкретной функции в определенной строке кода. Эта функция становится немного более ограниченной (но все же полезной), если пользователи получают доступ к SVN через http. Таким образом не производится обмен учетными данными, поэтому в аннотации не отображается имя строки, измененной разработчиком, который использует http для фиксации изменения.
Вопрос в том, есть ли у разработчика способ передать какие-либо учетные данные в SVN на сервере, чтобы однозначно идентифицировать их фиксацию? В этой среде требуется просто наличие идентификатора. Альтернативные методы, такие как svn + ssh и файловые протоколы, недоступны. Наконец, этот сервер находится во внутренней локальной сети, а не в открытом доступе. Также приветствуются советы по https.
Сервер SVN работает под управлением Linux с Apache2.
Поскольку вы запускаете SVN через Apache, вы можете воспользоваться преимуществами встроенных методов аутентификации Apache для управления доступом / отслеживания изменений в вашем репозитории. Пример ниже будет работать с настройкой в стиле htaccess:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
Вы можете настроить это в файле htaccess или в файле конфигурации VirtualHost.
в конфигурации apache:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
и / etc / apache2 / svn_authz может содержать подробное управление тем, кто и к чему имеет доступ:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
если у вас есть ldap / active directory server, вы можете использовать его вместо AuthUserFile для аутентификации apache.
Этот ответ предполагает, что ваши разработчики используют Windows и у вас есть контроллер домена Active Directory.
Вы можете присоединить Linux svn-сервер к домену, выполнив следующие действия. статья.
Оттуда вы настраиваете apache для аутентификации в AD с помощью Kerberos. Первая установка mod_auth_kerb, затем подключите apache2 к Kerberos для аутентификации. См. Microsoft документация. Убедитесь, что вы внедрили SSL, если вас вообще беспокоит безопасность между клиентом и сервером.
После того, как вы закончите, пользователь может войти в систему со своими паролями Windows, и действия будут назначены его пользователю.
К сожалению, я не могу предоставить вам конкретные детали конфигурации прямо сейчас, так как меня нет в офисе и нет доступа к нашему svn-серверу.
Короткий ответ: mod_authz_svn
Вы можете немного узнать об apache + svn + mod_autz_svn и кое-что еще на моих слайдах, представленных на Международной конференции PHP '09, доступных по адресу http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf