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! |