svn

Категория:Виртуальный хостинг -> Сервисы и средства разработки

Содержание


Subversion

Subversion – это бесплатная централизованная система контроля версий. Существуют клиенты subversion под ОС Windows и UNIX-подобные.
Официальный сайт: http://subversion.tigris.org/
Клиенты для Windows: TortoiseSVN, инструкция по работе
Клиенты для UNIX: svn

Система контроля версий нужна в первую очередь для совместной разработки программного обеспечения. Каждый из разработчиков имеет свою рабочую копию проекта, в которую он вносит изменения. Разработчики вносят свои изменения в систему контроля версий, после чего их изменения становятся доступны всем другим разработчикам. Таким образом цикл разработки можно представить как:

  1. Получение локальной рабочей копии(с помощью команды svn checkout). Требуется выполнить команду один раз.
  2. Внесение изменений в локальную рабочую копию.
  3. Обновление локальной рабочей копии(с помощью команды svn update)
  4. Добавление изменений в репозиторий(с помощью команды svn commit)

Действия по пунктам 2-4 повторяются циклично. Каждое изменение репозитория, вызванное добавлением изменений из локальной рабочей копии разработчиков в репозиторий, называется ревизией.
Таким образом, можно получить определенную версию проекта, которая характерезуется номером ревизии. Или посмотреть изменения, например с ревизии номер 14 до 15.

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

Для того, чтобы создать subversion репозиторий, необходимо зайти в панель управления, перейти в раздел «Управление» пункт Сайты и создать новый сайт с типом svn. Можно также изменить тип для уже существующего сайта.

Доступ к svn репозиторию

Доступ к subversion репозиторию осуществляется посредством протокола http. Авторизация пользователей осуществляется с помощью файла .htpasswd, который находится в директории сайта. репозиторий так же расположен в директории сайта.
Как работать с файлом .htpasswd можно узнать здесь

Работа с svn репозиторием

Прежде всего необходимо создать пользователя с паролем в файле .htpasswd, как описано выше.
Сам же svn репозиторий находится в папке svn вашего сайта.

checkout

Далее необходимо получить локальную рабочую копию. Сделать это можно с помощью следущей команды:

$ svn checkout —username=phusermv —password=strongpasswd http://13.phusermv.z8.ru
Store password unencrypted (yes/no)? yes
A    13.phusermv.z8.ru/README
A    13.phusermv.z8.ru/index.php
Checked out revision 2.

где phusermv и strongpasswd – логин и пароль пользователя, http://13.phusermv.z8.ru/ – адрес сайта. После чего, в каталоге 13.phusermv.z8.ru создастся локальная рабочая копия нашего репозитория.

add

Для того чтобы добавить файл в систему контроля версий, необходимо выполнить команду:

svn add путь_к_файлу

Например, создадим файл main.c в директории с рабочей копией:

status

$ touch main.c
$ svn status
?       main.c

Команда svn status показывает краткий вывод о файлах и директориях в рабочей копии.

  • Флаг ‘?’ – означает, что файл не находится под управлением системы контроля версий.
  • Флаг ‘M’ – означает, что файл в нашей рабочей копией имеет какие-либо модификации.
  • Флаг ‘A’ – означает, что файл добавлен под управление системой контроля версий.

Содержание файла main.c будет следущим:

int    main(int argc, char **argv) {
   return 0;
}

Далее выполняем команду svn add:

$ svn add main.c 
A         main.c
$ svn status
A       main.c

Как мы видим, результат выполнения команды svn status изменился: теперь файл main.c помечен как добавленный в систему контроля версий. Чтобы внести изменения локальной рабочей копии в svn-репозиторий необходимо выполнить следущую команду:

update, commit

$ svn update
At revision 2.
$ svn commit -m «Added new file main.c. The body of our program»
Adding         main.c
Transmitting file data .
Committed revision 3.

Команда svn update служит для обновления рабочей копии. Рекомендуется всегда обновлять рабочие копии перед командой svn commit, для того, чтобы поддерживать их в актуальном состоянии. Команда svn commit -m принимает аргумент в виде комментария, который описывает данный commit. Внесем локальные изменения в файл main.c, теперь его содержимое будет таким:

#include 
/* * This program will print «Hello, world» to the <stdout> and exit * with status code 0 */
int main(int argc, char **argv) { printf(’%s\n’, «Hello, World!»); return 0;
}

diff

С помощью команды svn diff можно увидеть разницу между локальной рабочей копией и репозиторием. Например:

$ svn diff
Index: main.c
===============================================================
—- main.c    (revision 3)
+++ main.c    (working copy)
 -1,3 +1,10 
+#include 
+
+/*
+ * This program will print «Hello, world» to the  and exit
+ * with status code 0
+ */
 int    main(int argc, char **argv) {
+    printf(»%s\n», «Hello, World!»);
     return 0;
 }

Более подробную справку о возможностях subversion можно получить на официальном сайте и из командной строки, с помощью команды svn help

Категории:

загрузка…