Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Руководство сервера Ubuntu
  3. Глава 4. Работа в сети

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

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

Subversion

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

Установка

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

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

sudo apt-get install subversion libapache2-svn

Конфигурация сервера

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

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

Репозиторий Subversion может быть создан используя следующую команду:

svnadmin create /path/to/repos/project

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

Репозиторий Subversion может быть доступен разными способами - на локальном диске или через разные сетевые протоколы. В любом случае, расположение репозитория всегда ссылка (URL). Таблица объясняет разные схемы ссылок в доступных методах доступа.

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

Схема

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

file://

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

http://

Доступ по протоколу WebDAV к вебсерверу Apache2, умеющему работать с системой Subversion

https://

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

svn://

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

svn+ssh://

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


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

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

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

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

или

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

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

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

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

Для доступа к репозиторию 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. Дополнительные сведения Вы можете найти в следующей секции.

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

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

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

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

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

Как только репозиторий 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 
Доступ используя нестандартный протокол с поддержкой SSL (svn+ssh://)

Конфигурация и процесс сервера такие же как и в случае с svn://. Более подробно описано в предыдущей секции. На этом этапе подразумевается что Вы выполнили предыдущие шаги и запустили сервер Subversion, используя комманду svnserve

Так же подразумевается, что на том же компьютере запущен сервер SSH и на него разрешены входящие соединения. Что бы проверить, попробуйте подключиться к этому компьютеру используя SSH. Если вы зашли в этот компьютер, значит всё замечательно. Если вы не можете войти в этот компьютер, решите эту проблему перед тем, как приступать к дальнейшим шагам.

Протокол svn+ssh:// используется если необходимо подключиться к репозиторию Subversion используя SSL. В этом случае все передаваемые данные будут зашифрованы. Для доступа к репозиторию проекта необходимо использовать следующую комманду:

svn co svn+ssh://hostname/var/svn/репозиторий/проект

Что бы получить доступ к репозиторию Subversion используя этот метод, необходимо ввести полный путь (/путь/к/репозиторию/проекту).

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

Сервер CVS

CVS - система контроля версий. Её можно использовать для записи истории исходных файлов.

Установка

Введите следующую команду в окне термниала для установки cvs:

sudo apt-get install cvs

После того, как вы установите cvs, необходимо установить xinetd для запуска/останова сервера CVS. При запросе введите следующую команду для установки xinetd:

sudo apt-get install xinetd

Конфигурация

Once you install cvs, the repository will be automatically initialized. By default, the repository resides under the /var/lib/cvs directory. You can change this path by running following command:

cvs -d /your/new/cvs/repo init

Once the initial repository is set up, you can configure xinetd to start the CVS server. You can copy the following lines to the /etc/xinetd/cvspserver file.

сервис cvspserver
{
     порт = 2401
     тип_сокета= stream
     протокол = tcp
     пользователь = root
     ждать = no
     тип = UNLISTED
     сервер = /usr/bin/cvs
     аргументы_сервера = -f --allow-root /var/lib/cvs pserver
     отключить = no
}

Если была изменена директория по умолчанию (/var/lib/cvs), то необходимо будет изменить репозиторий.

Once you have configured xinetd you can start the cvs server by running following command:

sudo /etc/init.d/xinetd start

Для проверки запущен ли CVS сервер можно использовать команду:

sudo netstat -tap | grep cvs

После того, Вы запустите эту команду, Вы должны увидеть нечто похоже:

tcp 0 0 *:cvspserver *:* LISTEN 

После этого можно добавлять новых пользователей, новые проекты и управлять сервером CVS.

CVS позволяет добавлять новых пользователй независимо от установленной у них ОС. Вероятно самый лёгкий путь использовать Linux Users для CVS

Добавление проектов

This section explains how to add new project to the CVS repository. Create the directory and add necessary document and source files to the directory. Now, run the following command to add this project to CVS repository:

cd your/project
cvs import -d :pserver:username@hostname.com:/var/lib/cvs -m "Importing my project to CVS repository" . new_project start

При использовании вышеуказанной команды cvs можно отказаться от опции -d. Для этого необходимо использовать переменную окружения CVSROOT.

The string new_project is a vendor tag, and start is a release tag. They serve no purpose in this context, but since CVS requires them, they must be present.

Обратите внимание, что при добавлении нового проекта пользователь должен иметь доступ на запись в репозиторий CVS (/var/lib/cvs). По умолчанию, группа src имеет доступ на запись в репозиторий CVS. Таким образом учётная запись может быть добавлена в эту группу и пользователь сможет добавлять и управлять проектами в репозитории CVS.

Ссылки

Книга Subversion

Перекрёстные ссылки книги для Система контроля версий

  • Прокси-сервер Squid
  • Вверх
  • Базы данных

Book navigation

  • Глава 1. Введение
  • Глава 2. Установка
  • Глава 3. Управление пакетами
  • Глава 4. Работа в сети
    • Настройка сети
    • TCP/IP
    • Настройка межсетевого экрана (брандмауера)
    • Сервер OpenSSH
    • FTP Сервер
    • Сетевая файловая система (Network File System, NFS)
    • Протокол динамической настройки хостов (Dynamic Host Configuration Protocol, DHCP)
    • Служба именования доменов (DNS)
    • CUPS - сервер печати
    • HTTPD - веб сервер Apache2
    • PHP5 - Scripting Language
    • Прокси-сервер Squid
    • Система контроля версий
    • Базы данных
    • Сервисы электронной почты
    • Time Synchronisation with NTP
  • Глава 5. Работа в сети Windows

Последние материалы

  • Приложение scanimage
    17 hours ago
  • Утилита sensors
    4 days 17 hours ago
  • Сканер Rkhunter
    1 week 5 days ago
  • Программа resize2fs
    2 weeks 3 days ago
  • Аудиопроигрыватель QMMP
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru