Техподдержка

8 (800) 2000 699

info@netangels.ru

Работа с Subversion на хостинге

В данной статье рассмотрено использование СКВ Subversion на хостинге. Система контроля версий Subversion поможет управлять разработкой и поддержкой проектов.

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

Работа с Subversion доступна пользователям тарифов "Лайт", "Стандарт" и "Профи" по протоколу svn+ssh. Для клиенов тарифов линейки "Облачных VDS" -- по любому доступному протоколу (svn, http или https).

Создание репозитория и инициализация текущего проекта

Рассмотрим пример создания репозитория Subersion в каталоге svnroot. Для этого необходимо зайти через SSH на сервер и выполнить команду:

svnadmin create svnroot

После этого в текущем каталоге появится каталог svnroot со служебными файлами. Это текущее хранилище данных, обращение к которому напрямую не производится. Вместо этого для работы с ним используются команды svn.

Если у Вас уже есть готовый проект, которй планируется перевести под управление Subversion, необходимо выполнить его импорт. Можно сделать это из той же консоли с использованием программы svn - одного из клиентов для работы с Subversion.

Предположим, что у Вас есть готовый проект, который лежит в каталоге myproject. Импорт в этом случае будет выглядеть следующим образом:

svn import myproject file:///home/uXXXX/svnroot/myproject -m 'Initial import'

Здесь:

  • myproject - имя каталога, который предназначен для импорта;
  • file:// - указание на протокол для связи с репозиторием;
  • /home/uXXX/svnroot - путь до репозитория;
  • myproject - после слеша указывается путь к проекту внутри дерева репозитория;
  • -m 'Initial import' - строка, которая идентифицирует эту правку.

Хочется еще раз обратить внимание на то, что путь к проекту внутри репозитория -- это совсем не тоже самое, что путь в файловой системе, поэтому не пытайтесь найти файлы проекта в каталоге svnroot, равно как и исправлять то, что там хранится.

Удаленный доступ к репозиторию

Ниже рассмотрен единственно доступный способ доступа к репозиторию для пользователей ТП "Стандарт" и "Профи" -- доступ по протоколу svn+ssh.

Доступ с помощью консольной версии клиента

Пользователи Linux и других клонов UNIX располагают удобной консольной утилитой для управления репозиторием, которая называется svn. Для того чтобы получить текущее содержимое репозитория, достаточно выполнить команду:

svn co svn+ssh://uXXXX@uXXXX.netangels.ru/home/uXXXX/svnroot/myproject myproject

Эта команда скопирует последнюю версию проекта myproject в локальный каталог myproject. Для доступа необходимо ввести пароль доступа SSH на сервер. Для пользователей тарифа "Стандарт" такой доступ по умолчанию отключен, но может быть включен через панель управления хостингом. Все остальные команды для работы с проектом производятся как обычно (см. документацию или svn help).

Доступ из Windows с помощью TortoiseSVN

TortoiseSVN - это удобная система работы с Subversion для Windows, имеющая графический интерфейс. TortoiseSVN позволяет соединяться с сервером, в том числе и через svn+ssh.

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

Шаг 1. Выбрать каталог для хранения рабочих копий проектов и, щелкнув в нем правой кнопкой мыши, выбрать пункт SVN Checkout.

SVN checkout

Шаг 2. В появившемся окошке ввести полный путь к репозиторию, с которым необходимо соединиться, и каталог, в который будет выгружена рабочая копия.

Шаг 3. Система запросит пароль, и после его ввода Вы получите каталог с готовой рабочей копией. Файлы каталога будут отмечены специальными значками, указывающими на их состояние относительно основной копии, хранящейся в репозитории (изменен, добавлен и т.п.).

Как предоставить публичный доступ к репозиторию только на чтение

Если Вы разрабатываете открытый проект, то, возможно, захотите предоставить возможность получать обновления из Subversion для неограниченного круга пользователей и разработчиков.

Для пользователей VDS никаких проблем с этим возникнуть не должно. Пользователи ТП "Стандарт" и "Профи" имеют один SSH аккаунт на сервере, а поскольку доступ svn+ssh предполагает, что Вы авторизуетесь в репозитории со своим логином на сервере, то на этом уровне разграничение прав никак реализовано быть не может. Возможна реализация этого механизма несколькими обходными путями, однако во всех случаях неавторизованный пользователь теряет возможность просто сделать "svn update" для того, чтобы получить последнюю версию изменений. Варианты возможны следующие: добавить в crontab команду, которая раз в сутки выполняет svn export (или svn checkout), формирует из полученного каталога архив и выкладывает его в каталог, доступный через web. добавить точно такую же команду в качестве hook'а для действия post-commit (подробнее о том, что это такое, можно прочесть здесь).

Ссылки

Контакты

8 (800) 2000 699

Остались вопросы?

Отправить