Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IPZ / IPZ_lab2_Subversion.doc
Скачиваний:
8
Добавлен:
07.02.2016
Размер:
249.86 Кб
Скачать

Лабораторная работа 2

"Subversion (SVN)"

Цель – приобрести навыки работы с системой контроля версий "Subversion".

1. Теоретические сведения.

"SVN" – централизованная система для совместного использования информации [1]: файлы (каталоги) хранятся на сервере, тогда на клиентских узлах находятся соответствующие копии. Использование "SVN" дает возможность отслеживать "историю" изменений файлов (каталогов) разработчиками и, в случае необходимости (возникновение ошибок), выполнять "откат" изменений.

Фундаментальные понятия "SVN":

- "Хранилище" (репозитарий) – центр хранения данных (размещено на сервере); информация (файлы и каталоги) представлены в виде древовидной структуры; хранилище можно рассматривать как разновидность файлового сервера;

- "Рабочая копия" – дерево папок на локальной системе, содержащее набор файлов [2]. Рабочую копию можно рассматривать как локальную рабочую область клиента.

- модель "блокирование / изменение / разблокирование" как модель контроля версий – одновременное редактирование файлов несколькими пользователями запрещено;

- модель "копирование / изменение / слияние" как модель контроля версий – на клиентских узлах создаются копии файлов и каталогов, размещенных в хранилище; разработчики одновременно и независимо модифицируют копии, над которыми затем выполняется операция слияния (модифицированные копии замещают в хранилище исходные копии).

Некоторые из возможностей "SVN":

- контроль модификации каталогов – используется виртуальная файловая система, что позволяет отслеживать изменения во времени иерархических структур каталогов;

- метаданные с версиями – файлам (каталогам) ставятся в соответствие множества метаданных, элементы которых есть пары вида "(название, значение)".

Архитектура "SVN" приведена на рис. 1.

Рисунок 1 – Схема взаимодействия компонентов "Subversion"

Прокомментируем программные компоненты:

- "svn.exe" – клиентская программная утилита, предоставляющая интерфейс командной строки;

- "svnadmin.exe" – инструментарий создания, настройки или восстановления хранилища;

- "svnserve.exe" – "легкий" сервер, предоставляющий клиентам возможность взаимодействовать с хранилищем посредством протоколов TCP/IP; клиенты взаимодействуют с сервером используя URL вида "svn://...".

В качестве инструментария, содержащего описанные программные компоненты, может использоваться сборка "CollabNet" ("CollabNetSubversion-client-1.7.8-1-Win32.exe") [3]. Для использования соответствующего набора команд следует добавить путь к установленной сборке в системную переменную "Path".

Характер взаимодействия клиентов с хранилищем задается содержимым конфигурационного файла "svnserve.conf", расположенного в директории "conf" репозитария. Для задания содержимого файла используется следующий набор параметров, приведенный в табл. 1. Схема инициализации параметров следующая: "параметр = значение".

Таблица 1 – Конфигурационные параметры файла "svnserve.conf"

Параметр

Описание

1

anon-access

­- задает права доступа для неавторизированных пользователей;

- допустимые значения – "read | write | none"

(по умолчанию – "read");

2

auth-access

- // - для авторизированных пользователей;

- // - (по умолчанию – "write");

3

password-db

- задает название файла, содержащего строки вида "user_name = password";

4

authz-db

- задает название базы данный, содержимое которой позволяет задавать права доступа для групп пользователей; файл с соответствующим названием также расположен в директории "conf";

5

realm

- задает область действия групповой политики;

- в общем случае значение ставится в соответствие паре (репозитарий, разрабатываемый проект);

Типичное содержимое файла "svnserve.conf" приведено в листинге 1.

Листинг 1 – Задание политики доступа

[general]

anon-access = write

auth-access = write

password-db = passwd

realm = repository No1

Способы доступа к хранилищу приведены в табл. 2.

Таблица 2 – Описание URL-схем доступа

Шаблон

Описание

1

file://

- прямой доступ (хранилище размещено на локальном ПК);

2

svn://

- доступ посредством специализированного (упрощенного) сетевого "SVN"-протокола к легковесному серверу "svnserve";

3

svn+ssh://

­ - // - + гарантия безопасности передачи файлов по незащищенной среде;

4

http://

- доступ к "SVN"-адаптированному web-серверу "Apache" посредством протокола "WebDAV" – защищенного сетевого протокола поверх "HTTP";

5

http://

- // - + "SSL"-шифрование.

Замечание: перечисленные выше шаблоны определяют протокол, который будет использоваться для доступа к репозиторию. Стандартной формой записи протокола (знакомой по http://) является <имя_протокола>:// (слешей в конце всегда именно два).

Поскольку изначально SVN был разработан для ОС Unix, в которой корень диска обозначается символом /, при обращении к репозиторию по протоколу file:// путь к папке необходимо начинать указывать с символа / (корень диска). Если папка репозитория находится на другом диске. нежели текущий, то необходимо указать еще и букву диска, например: file:///E:/%PATH%/repo_<<PC_No>>

В лабораторной работе будем использовать первые два способа (табл. 2).

В табл. 3 приведены некоторые из команд для работы с "Subversion".

Таблица 3 – Возможные манипуляции с репозитарием

Команда

Назначение, комментарии

1

svnadmin create \

\path\to\repository

- создание хранилища;

2

svn import <<source>> \ <<destination>> -m \

<<mark>>

- импортирование файлов (директорий) в хранилище (не копирование, а ассоциирование их с хранилищем);

- <<source>> – путь к импортируемому файлу (директорию);

- <<destination>> – путь к хранилищу;

- <<mark>> – обязательная метка в виде текстовой строки;

3

svn list file:/// \

/path/to/repository

­ - просмотр содержимого хранилища (содержимое выводится в виде списка);

4

svnlook tree \

\path\to\repository

- // - (вывод содержимого в виде древовидной структуры);

5

svnserve –d –r \

\path\to\repository

- запуск сервера "svnserve" в качестве автономного процесса (-d);

- параметр (-r) задает передаваемый путь как "корневой", что впоследствии упрощает формат записи клиентских обращений к хранилищу (пример – следующая команда);

6

svn checkout \ svn://localhost

Альтернатива:

svn co \ svn://localhost

- создание рабочей копии (выполнима при условии, что сервер "svnserve" запущен);

- в случае успеха, получим сообщение вида "Checked out revision..." (номер версии рабочей копии);

7

svn co file:/// \

\path\to\repository

- аналогична предыдущей команде, однако применяется для создания рабочей копии локального хранилища;

8

svn status

- получение статуса рабочей копии файла (директории);

- для индикации статуса предназначен следующий набор флагов (меток):

- 'A' (added) – файл (дир.) добавлен;

- 'D' (deleted) - // - удален;

- 'M' (modified) - // - изменен;

- 'R' (replaced) -// - замещен;

9

svn add \

<<filename (dirname)>>

- добавление нового файла (папки) в рабочую копию;

10

svn commit –m "mark"

- внесение изменений из рабочей копии в репозитарий;

- "mark" – метка (метаданные).

Для всех команд символ \ в конце строки служит для экранирования переноса продолжения команды на следующую строку и является стандартным средством создания команд в несколько строк в ОС Windows. При написании команд в одну строку, символ экранирования использовать не надо.

Соседние файлы в папке IPZ