Быстрый старт в Subversion

«Пожалуйста, удостоверьтесь что ваши посадочные места находятся в верткальном положении, а ваши столики закреплены. Бортпроводникам приготовиться к взлету.….»

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

[Замечание] Замечание

Примеры, используемые в этом приложении предполагают наличие у вас работающих Subversion клиента для командной строки svn и инструмента администрирования svnadmin. Кроме этого он рассчитан на то, что вы используете Subversion версии 1.2 или более поздней (для того, чтобы это проверить, выполните svn --version).

Subversion хранит всю версионированную информацию в центральном хранилище. Для начала, создадим новое хранилище:

$ svnadmin create /path/to/repos
$ ls /path/to/repos
conf/  dav/  db/  format  hooks/  locks/  README.txt

Эта команда создает новую директорию /path/to/repos содержащую Subversion хранилище. Убедитесь, что эта директория находится на локальном диске, не на сетевой шаре. Преимущественно в эта новая директория (кроме прочего) содержит набор файлов базы данных. Вы не увидите своих версионированных файлов если вы загляните внутрь. Больше информации о создании и поддержке хранилища ищите в Глава 5, Администрирование хранилища.

У Subversion нет понятия «проект». Хранилище является просто виртуальной версионированной файловой системой, большое дерево файлов, которое может содержать все, что угодно. Одни администраторы предпочитают держать в хранилище только один проект, другие держать в хранилище множество проектов, размещая их в отдельных директориях. Достоинства каждого из подходов рассмотрены в «Choosing a Repository Layout». В любом случае, хранилище управляет только файлами и директориями, оставляя за человеком право интерпретировать отдельные директории как «проекты». Поэтому, если в тексте книги вы встретите упоминание проекта, помните, что имеется в виду просто директория (или несколько директорий) хранилища.

В этом примере мы подразумеваем наличие у вас какого то проекта (набора файлов или директорий), который вы хотите импортировать в только что созданное Subversion хранилище. Начните с объединения их в отдельной директории названой myproject (или как-то иначе). По причинам, которые будут ясны позже (см. Глава 4, Ветвление и слияние), ваше дерево проекта должно содержать три директории верхнего уровня с названиями branches, tags и trunk. Вся ваша информация должна находиться в директории trunk, а директории branches и tags должны быть пустыми:

/tmp/myproject/branches/
/tmp/myproject/tags/
/tmp/myproject/trunk/
                     foo.c
                     bar.c
                     Makefile
                     …

Использовать поддиректории branches, tags и trunk не обязательно. Просто такой подход чаще всего используется и вероятнее всего в дальнейшем вы будете использовать именно его.

Как только вы получите готовое дерево данных, импортируйте его в хранилище при помощи команды svn import (см. «svn import»):

$ svn import /tmp/myproject file:///path/to/repos/myproject -m "initial import"
Adding         /tmp/myproject/branches
Adding         /tmp/myproject/tags
Adding         /tmp/myproject/trunk
Adding         /tmp/myproject/trunk/foo.c
Adding         /tmp/myproject/trunk/bar.c
Adding         /tmp/myproject/trunk/Makefile
…
Committed revision 1.
$

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

Обратите внимание на то, что первоначальная директория /tmp/project остается без изменений; Subversion о ней не знает. (Фактически, при желании, вы можете даже удалить этот каталог.) Чтобы начать работать с информацией хранилища вам нужно создать новую «рабочую копию» информации, своего рода частное рабочее пространство. Попросите Subversion создать рабочую копию директории myproject/trunk хранилища:

$ svn checkout file:///path/to/repos/myproject/trunk myproject
A  myproject/foo.c
A  myproject/bar.c
A  myproject/Makefile
…
Checked out revision 1.

Сейчас у вас в новой директории myproject есть личная копия части хранилища. В рабочей копии вы можете редактировать файлы, а затем зафиксировать внесенные изменения в хранилище.

Для получения полного списка возможных действий с рабочей копией прочтите Глава 2, Экскурсия по Subversion.

После этого вы можете сделать ваше хранилище доступным для других через сеть. См. Глава 6, Настройка сервера для знакомства с различными типами доступных серверных процессов и методами их настройки.

### TODO: Let's make this into a full tutorial, rather than simply referring off to other sections. ###