Subversion - это система контроля версий с открытым исходным кодом. Используя Subversion вы можете сохранять историю изменений файлов и документов. Дерево файлов и папок хранится в центральном репозитории похожем на обыкновенный файловый архив, за исключеним того, что сохраняются любые их модификации.
Для доступа к репозиторию Subversion, посредством HTTP протокола, вы должны установить и настроить веб сервер. Apache2 гарантированно работает с Subversion. Для установки и настройки сервера Apache2, обратитесь к подразделу HTTP раздела Apache2. Для доступа к репозиторию Subversion, посредством HTTPS протокола, вы должны установить и настроить цифровой сертификат в веб сервере Apache2. Для установки и настройки цифрового сертификата, обратитесь к подразделу HTTPS раздела Apache2.
Для установки Subversion выполните следующую команду в терминале:
sudo apt-get install subversion libapache2-svn
Данный шаг подразумевает, что вы установили в систему пакеты, отмеченные выше. Данная секция объясняет как создать репозиторий Subversion и получить доступ к проекту
Репозиторий Subversion может быть доступен разными способами - на локальном диске или через разные сетевые протоколы. В любом случае, расположение репозитория всегда ссылка (URL). Таблица объясняет разные схемы ссылок в доступных методах доступа.
Таблица 13.1. Методы доступа
Схема |
Метод доступа |
---|---|
file:// |
прямой доступ к репозиторию (на локальном диске) |
http:// |
Доступ по протоколу WebDAV к вебсерверу Apache2, умеющему работать с системой Subversion |
https:// |
То же самое, что и http://, но с SSL шифрованием |
svn:// |
Доступ через выборочный протокол к серверу svnserve |
svn+ssh:// |
То же самое, что и svn://, но через SSH тунель |
В этой секции объясняется как настроить Subversion для всех этих методов доступа. Здесь мы описываем основы. Для более детального описания, обратитесь к книге svn.
Это самый простой из всех методов доступа. Он не требует запуска никакого процесса сервера Subversion. Этот метод доступа используется для доступа к Subversion с той же машины. Синтакс команды, введенной в строке терминала, следующий:
svn co file:///path/to/repos/project
или
svn co file://localhost/path/to/repos/project
![]() |
|
Если вы не указали имя хоста, используйте три слэша (///) - два для протокола (в данном случае - файл) плюс первый слэш в пути. Если вы указали имя хоста, используйте два слеша (//). |
Права доступа к репозиторию зависят от прав доступа к файловой системе. Если пользователь обладает правами на чтение/запись - он может производить отладку и вносить изменения в репозиторий
Для доступа к репозиторию Subversion через протокол WebDAV необходимо сконфигурировать сервер Apache 2. Добавьте этот фрагмент в файл /etc/apache2/apache2.conf
:
<Location /svn> DAV svn SVNPath /путь/к/репозиторию AuthType Basic AuthName "Название репозитория" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Следующим шагом необходимо создать файл /etc/subversion/passwd
. Этот файл содержит настройки идетнификации. Для добавления записи, например новго пользователя, Вы можете запустить эту команду из окна терминала:
htpasswd2 /etc/subversion/passwd имя_пользователя
Команда запросит ввести пароль. Как только пароль будет введён - пользователь будет добавлен. Теперь что бы получить доступ к репозиторию Вам необходимо выполнить эту команду:
svn co http://имясервера/svn
![]() |
|
Передача пароля происходит открытым текстом. Если Вы не хотите, что бы пароль был перехвачен используйте шифрование траффика с применением SSL. Дополнительные сведения Вы можете найти в следующей секции. |
Доступ к репозиторию Subversion через протокол WebDAV с применением SSL (https://) похож на http://, за исключением того, что в веб сервере Apache 2 необходимо установить и сконфигурировать цифровой сертификат.
Можно установить цифровой сертификат выданный такой организацией, как Verisign или сертификат, подписанный Вами.
Этот шаг подразумевает, что у вас есть установленный и сконфигурированный цифровой сертификат в веб сервере Apache 2. Для доступа к репозиторию Subversion, обязательно ознакомьтесь с предыдущей секцией! Спобобы доступа такие же, за исключением протокола. Необходимо использовать https:// для доступа к репозиторию Subversion.
Как только репозиторий Subversion будет создан, можно будет сконфигурировать контроль доступа. Для изменения контроля доступа измените файл /путь/к/репозиторию/проект/conf/svnserve.conf
. Например, для включения аутентификации, уберите комментарий на следующих строчках:
# [general] # password-db = passwd
Как только Вы раскомментируете вышеуказанные строки, Вы можете использовать список пользователей из файла passwd. Редактировать необходимо файл passwd
, находящийся в той же директории и добавьте нового ползователя.
username = password
Что бы получить больше информации посмотрите файл.
Теперь что бы получить доступ к Subversion через свой протокол svn:// с того же или с другого компьютера, Вы можете запустить сервер Subversion используя комманду svnserve. Синтаксис:
$ svnserve -d --foreground -r /путь/к/репозиторию # -d -- daemon режим сервиса (невидимый) # --foreground -- запустить на консоль (полезно для отладки) # -r -- корень репозитория Для подробного описания использования команды выполните команду: $ svnserve --help
После запуска этой команды Subversion будет запущен на порту 3690. Для того, что бы сменить репозиторий, необходимо выполнить команду:
svn co svn://имяхотса/проект проект --username имя_пользователя
Если в кониге указано, будет запрошен пароль. После аутентификации, будет проверен код из репозитория Subversion. Для синхронизации локальной копии и репозитория проекта можно выполнить под-команду update. Синтакс введённой команды следующий.
cd директория_проекта ; svn update
Вы можете обратиться к инструкции пользователя, если вас интересует детали использования каждой под-команды Subversion. На пример, что бы узнать больше про комманду "co", запустите эту команду:
svn co help
Конфигурация и процесс сервера такие же как и в случае с svn://. Более подробно описано в предыдущей секции. На этом этапе подразумевается что Вы выполнили предыдущие шаги и запустили сервер Subversion, используя комманду svnserve
Так же подразумевается, что на том же компьютере запущен сервер SSH и на него разрешены входящие соединения. Что бы проверить, попробуйте подключиться к этому компьютеру используя SSH. Если вы зашли в этот компьютер, значит всё замечательно. Если вы не можете войти в этот компьютер, решите эту проблему перед тем, как приступать к дальнейшим шагам.
Протокол svn+ssh:// используется если необходимо подключиться к репозиторию Subversion используя SSL. В этом случае все передаваемые данные будут зашифрованы. Для доступа к репозиторию проекта необходимо использовать следующую комманду:
svn co svn+ssh://hostname/var/svn/репозиторий/проект
![]() |
|
Что бы получить доступ к репозиторию Subversion используя этот метод, необходимо ввести полный путь (/путь/к/репозиторию/проекту). |
Если в указано в настройках будет запрошен пароль. Необходимо ввести пароль, используемый при подключении через SSH. Если пароль верный, будет проверен код из репозитория Subversion.