Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
serverguide-precise-ru.pdf
Скачиваний:
77
Добавлен:
03.05.2015
Размер:
1.86 Mб
Скачать

Система контроля версий

2. Subversion

Subversion — это система контроля версий с открытым исходным кодом. Используя Subversion, вы можете сохранять историю изменений файлов и документов. Дерево файлов и папок хранится в центральном репозитории, похожем на обыкновенный файловый архив, за исключением того, что сохраняются любые их модификации.

2.1. Установка

Для доступа к репозиторию Subversion посредством протокола HTTP вы должны установить и настроить веб-сервер. Apache2 гарантированно работает с Subversion. Для установки и настройки сервера Apache2 обратитесь к подразделу HTTP раздела Apache2. Для доступа к репозиторию Subversion посредством протокола HTTPS вы должны установить и настроить цифровой сертификат в веб-сервере Apache2. Для установки и настройки цифрового сертификата обратитесь к подразделу

HTTPS раздела Apache2.

Для установки Subversion выполните следующую команду в терминале:

sudo apt-get install subversion libapache2-svn

2.2. Настройка сервера

Данный шаг подразумевает, что вы установили в систему пакеты, отмеченные выше. Этот раздел объясняет, как создать репозиторий Subversion и получить доступ к проекту

2.2.1. Создание репозитория Subversion

Репозиторий Subversion можно создать, введя в терминале:

svnadmin create /path/to/repos/project

2.2.2. Импорт файлов

Как только вы создадите репозиторий, вы сможете импортировать в него файлы. Для импорта каталога введите следующую строку в терминале:

svn import /путь/к/импортируемой/папке file:///путь/к/репозиторию/проект

2.3. Методы доступа

Доступ к репозиториям Subversion можно получить многими различными способами — через локальный диск или с помощью различных сетевых

310

Система контроля версий

протоколов. Однако адрес репозитория всегда URL. Таблица показывает, как различные схемы URL соответствуют доступным способам доступа.

Таблица 17.1. Методы доступа

Схема

Метод доступа

 

 

file://

Прямой доступ к репозиторию (на локальном диске)

 

 

http://

Доступ по протоколу WebDAV к вебсерверу Apache2, умеющему

 

работать с системой Subversion

 

 

https://

То же самое, что и http://, но с SSL шифрованием

 

 

svn://

Доступ через выборочный протокол к серверу svnserve

 

 

svn+ssh://

То же самое, что и svn://, но через SSH тунель

 

 

В этом разделе объясняется, как настроить Subversion для всех этих методов доступа. Здесь мы описываем основы. Для более детального описания, обратитесь к книге svn3.

2.3.1. Прямой доступ к репозиторию (file://)

Это самый простой из всех методов доступа. Он не требует запуска никакого процесса сервера Subversion. Этот метод доступа используется для доступа к Subversion с той же машины. Синтакс команды, введенной в

строке терминала, следующий:

svn co file:///path/to/repos/project

или

svn co file://localhost/path/to/repos/project

Если вы не указали имя хоста, используйте три слэша (///) — два для протокола (в данном случае — файл), плюс первый слэш в пути. Если вы указали имя хоста, используйте два слеша (//).

Права доступа к репозиторию зависят от прав доступа к файловой системе. Если пользователь обладает правами на чтение/запись — он может производить отладку и вносить изменения в репозиторий

2.3.2. Доступ через протокол WebDAV (http://)

Для доступа к хранилищу Subversion через протокол WebDAV вам потребуется настроить сервер Apache2. Добавьте следующий фрагмент между элементами emphasis><VirtualHost>

3 http://svnbook.red-bean.com/

311

Система контроля версий

<Location /svn> DAV svn

SVNPath /home/svn AuthType Basic

AuthName "Your repository name" AuthUserFile /etc/subversion/passwd Require valid-user

</Location>

Фрагмент конфигурации выше предполагает, что хранилища Subversion созданы в каталоге /home/svn/ с использованием команды svnadmin. Они могут быть доступны по адресу http://hostname/ svn/repos_name.

Для импорта или утверждения файлов в ваш репозиторий Subversion по протоколу HTTP, репозиторий должен принадлежать пользователю HTTP. В системах Ubuntu этим пользователем обычно является www-data. Для смены владельца файлов репозитория введите следующую команду в терминале:

sudo chown -R www-data:www-data /путь/к/репозиторию

Меняя владельца репозитория на www-data, вы потеряете способность импортировать или фиксировать файлы в нем, используя команду svn import file:/// любым, отличным от wwwdata, пользователем.

Далее, вы должны создать файл /etc/subversion/passwd, который будет содержать данные для аутентификации пользователя. Для создания файла выполните в командной строке следующую команду (которая создаст файл и добавит первого пользователя):

sudo htpasswd -c /etc/subversion/passwd имя_пользователя

Для добавления дополнительных пользователей не задавайте опцию "-c", так как она заменяет старый файл на новый. Вместо этого используйте:

sudo htpasswd /etc/subversion/passwd user_name

Команда запросит ввести пароль. Как только пароль будет введён

— пользователь будет добавлен. Теперь, чтобы получить доступ к репозиторию, вам необходимо выполнить эту команду:

svn co http://имясервера/svn

Передача пароля происходит открытым текстом. Если вы не хотите, чтобы пароль был перехвачен, используйте шифрование трафика

312

Система контроля версий

с применением SSL. Дополнительные сведения вы можете найти в следующем разделе.

2.3.3. Доступ к протоколу WebDAV с применением SSL (https://)

Доступ к хранилищу Subversion по протоколу WebDAV с SSL шифрованием (https://) аналогичен http://, за исключением того, что вы должны установить и настроить цифровой сертификат для вашего сервера Apache2. Для использования SSL с Subversion добавьте конфигурацию, приведенную

выше, в файл /etc/apache2/sites-available/default-ssl. Для дополнительной

информации по установке Apache2 с SSL смотрите Раздел 1.3, «Настройка

HTTPS» [220].

Вы можете установить цифровой сертификат, выпущенный центром сертификации. В качестве альтернативы можно использовать самоподписанный сертификат.

Этот шаг подразумевает, что у вас есть установленный и сконфигурированный цифровой сертификат в веб-сервере Apache 2. Для доступа к репозиторию Subversion обязательно ознакомьтесь с предыдущим разделом! Спобобы доступа такие же, за исключением протокола. Необходимо использовать https:// для доступа к репозиторию

Subversion.

2.3.4. Доступ с использованием своего протокола (svn://)

Как только репозиторий Subversion будет создан, можно будет сконфигурировать контроль доступа. Для изменения контроля доступа измените файл /путь/к/репозиторию/проект/conf/svnserve.conf. Например, для включения аутентификации уберите комментарий на следующих строчках:

#[general]

#password-db = passwd

Как только вы раскомментируете вышеуказанные строки, вы можете использовать список пользователей из файла passwd. Итак,

отредактируйте файл passwd , находящийся в том же каталоге, и добавьте нового пользователя.

username = password

Чтобы получить больше информации, посмотрите файл.

Теперь, чтобы получить доступ к Subversion через протокол svn:// с того же или с другого компьютера, вы можете запустить сервер Subversion, используя комманду svnserve. Синтаксис:

$ svnserve -d --foreground -r /путь/к/репозиторию

313

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]