Disclaimer: Прошу относиться с пониманием к тому, что данный текст пишется "на коленке" и разумеется не может рассматриваться как полноценное описание. Цель описания — только создать и настроить простейший репозиторий и начать работу с системой svn.

1. Использованное программное обеспечение:
-----
Apache 2.0.44
(apache_2.0.44-win32-x86-no_ssl.msi, 5 000 704 bytes)
(Текущая версия 2.0.45, но я использовал 0.44, поэтому так и описываю. Отличий в настройке нет.)
Subversion
(svn-0.20.0-setup.exe, 3 806 357 bytes)

Для заметки: Зачем нужен Apache?
Доступ к репозиторию Subversion возможен несколькими способами — локально, с использованием собственного протокола и standalone сервера, а также с использованием Apache и WebDAV. Последний способ, имхо, является предпочтительным — настройка доступа осуществляется средствами Apache и соответсвенно очень конфигурабельна, протокол http работает везде где только можно, надёжность Apache в общем-то доказана временем. Кроме того, хотя это уже и не так важно для нашего дела, система Subversion построена на APR (Apache Portable Runtime) и портируется на все платформы, на которых работает Апач. Ну, а с использованием локальных файлов вообще, ИМХО, лишена смысла

2. Установка продуктов
-----
Используя стандартные процедуры установки, устанавливаем Subversion и Apache.
Примем для простоты, что конечные директории установки, соответственно, C:\Program Files\Subversion\ и C:\Program Files\Apache Group\Apache2\ (директории по умолчанию).

Необходимо убедиться, что переменная PATH содержит путь к C:\Program Files\Subversion\ . Как это делается в Win9x, я уже не помню. По-моему, надо перегружаться — хотя не догма. Это необходимо для использования утилит svn и svnadmin из командной строки.

Всё, базова установка совершена. Далее мы будем настраивать Apache, репозиторий и сеть.

3. Конфигурация сети.
-----
Имя хоста для Subversion. Для простоты примем, что мы настраиваем хост svn.rsdn.ru Разумеется, каждый системный администратор должен будет использовать при установке и настройке имя другого хоста и правильно настроить DNS, если предполагается коллективная работа. Для простоты опять же, этот вариант мы рассматривать не будем и просто напишем в файл hosts (местоположение на WinNT/2000/XP — %SystemRoot%\System32\drivers\etc\hosts) следующую строчку:


# 38.25.63.10 x.acme.com
# x client host

127.0.0.1 localhost
127.0.0.1 svn.rsdn.ru

Теперь обращение к svn.rsdn.ru с Вашей машины будет перенаправляться на 127.0.0.1, где и стоит Apache. Для начала работы с системой достаточно. Впоследствии Вы настроите правильные IP-адреса.

4. Настройка Apache
-----
Настройка Apache осуществляется с использованием настроечного файла httpd.conf в каталоге C:\Program Files\Apache Group\Apache2\conf\ .
Настройка апача — дело тонкое и многогранное, на httpd.apache.org лежит исчерпывающая документация на эту тему, и мы касаться её не будем. Для нашей задачи понадобится не так много настроек.
Оговорим только ещё одну вещч. Apache допускает, как полноценный веб-сервер, обслуживание множества виртуальных хостов. Для простоты описания примем, что данный Apache обслуживать будет только Subversion. Тот, что использует VHOSTS — знает что делать с файлами настройки в своём случае.

Итак. Имеем стандартный файл httpd.conf. Вносим в него следующие изменения:

— Устанавливаем переменную ServerName:

ServerName svn.rsdn.ru:80

— Разрешаем использование модуля mod_dav:

#LoadModule dav_module modules/mod_dav.so
меняем на
LoadModule dav_module modules/mod_dav.so

— Разрешаем использование модуля Subversion:

Добавляем строку
LoadModule dav_svn_module modules/mod_dav_svn.so

ПОСЛЕ строки с mod_dav.so.

— Настраиваем параметры доступа к репозиторию

Добавляем в конец файла httpd.conf следующие строки:

<Location /svn>
DAV svn
SVNPath "C:/repository"
</Location>


Здесь предполагается, что физически репозиторий будет находиться в каталоге "C:\Repository". Доступ к корню репозитория будет осуществляться по адресу http://svn.rsdn.ru/svn/
Обратите внимание на использование прямых слэшей вместо обратных в настройках Apache.

Также нужно скопировать файл mod_dav_svn.so из поставки Subversion в каталог C:\Program Files\Apache Group\Apache2\modules\ и файл libdb40.dll из поставки Subversion — в каталог "C:\Program Files\Apache Group\Apache2\bin\" .
Это собственно модуль системы Subversion и библиотека доступа к репозиторию, используемая модулем. В принципе, libdb40.dll может наверное находиться не в bin\, а в любой директории, описанной в переменной PATH.

Перезапустим сервис Apache.


5. Настройка Subversion, создание репозитория.
-----

В состав системы Subversion входят две основные консольные утилиты — svn.exe и svnadmin.exe. Первая утилита — собственно клиент, используемый нами в работе. svnadmin — утилита для обслуживания репозитория — создания, создания резервных копий и т.д.

Запустим консоль (cmd.exe). Подадим команду:

svnadmin create "C:\repository"

Если нет сообщений об ошибках — значит наш репозиторий создан!

В англоязычной документации команда "svnadmin create ..." описана как "svn create ....". "Не верь глазам своим".. очепятка. Уже описана в списке багов.

-----

Собственно, на этом этапе система готова к работе. Это не значит, что работа завершена — нужно назначить в случае необходимости разные права доступа для разных пользователей, возможно доступ посредством ssh — но эти вопросы больше относятся к конфигурации Apache и здесь их рассматривать ни к чему.
Главное — система на этоп этапе готова к началу работы.

Описывать собственно работу с системой я не буду — в последнем номере журнала RSDN за 2002 год есть хорошая статья о работе с CVS. Последовательность импорта начального проекта, синхронизации — аналогична и для svn.
Надо однако учитывать, что идеология-то общая, а реализация у cvs и svn разная. Посему за деталями, пока я книжку не перевёл, отсылаю к англоязычному оригиналу, а здесь просто приведу некоторые первые команды:

svn mkdir -m "Directory for my test project" http://svn.rsdn.ru/svn/testproject
— создаём тестовую директорию testproject в репозитории для нашего первого проекта. Обратите внимание на изменение номера Revision репозитория. В отличие от CVS, где все файлы имеют свою нумерацию — в svn любое изменение репозитория приводит к изменению общего Revision number.

svn import -m "initial release" http://svn.shtrih-m.ru/svn/testproject .
— Включаем в репозиторий файлы из текущего каталога с подкаталогами (обратите внимание на точку в конце команды).

Выполнение команды
svn co http://svn.shtrih-m.ru/svn/testproject .
в пустой директории создаст рабочую копию проекта, полученную из репозитория, и на этом этапе можно начинать работу.


Если что не работает — спрашивайте.
Enjoy!
Автор: Dimentiy    Оценить