В срочном порядке необходимо было установить SVN (Subversion). Опишу вкратце парочку неочевидных моментов с которыми пришлось столкнуться при установке данной системы контроля версий.
Установка производилась на виндовом 2k3 серванте с первым сервиспаком, однако предположу что данное руководство применимо ко всем операционным системам семейства Win NT.
Итак, сходил на официальный сайт и скачал на момент написания данной статьи последнюю версию Subversion.
Инсталляция сервера
Запусктил инсталяционный файл и в процессе инсталляции указал установочную директорию (D:\SVN\Subversion).
Итак файлики успешно распаковались и готовы к использованию.
Создание репозитория SVN
Далее выполнив эту команду:
svnadmin create D:\svn\Repository
создал репозиторий, где будут располагаться файлы базы данных, конфигурации SVN.
Следующей и в общем-то основной задачей явилась регистрация SVN сервера в качестве служебного сервиса Windows. Для того чтобы прописать служебный сервис, я воспользовался следующей командой:
sc create SVN binPath= "d:\SVN\Subversion\bin\svnserve.exe --service --root d:/SVN/Repository" DisplayName= "Subversion Repository" depend= "Tcpip" start= auto
данной командой создается сервис с именем SVN, который будет автоматически при старте операционной системы запускать наш SVN-сервер.
Откровенно отмечу, что на этом шаге мне пришлось несколько повозиться:
Во-первых, обратите внимание, на пробелы в параметрах команды SC.exe. Оказываются они обязательны.
Во-вторых, будьте внимательнее с пробелами в пути к svnserve.exe и/или репозитария (параметр binPath). Если таковые имеются, то путь(и) необходимо помещать в дополнительные кавычки обрамляя слэшем, вот так
sc createbinPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" ..."
Конфигурация прав доступа
Лезу в директорию репозитория D:\svn\Repository в каталог conf. Открываю файл svnserve.conf и в секции [general] разкомментировал следующие параметры:
[general]
anon-access = read
auth-access = write
password-db = passwd
Далее залез в файл passwd и добавил свой логин и пароль, с которым я буду коннектиться к серверу.
Запуск сервера
net start SVN
Жду когда сервис запустится и проверяю командой
svn info svn://localhost
успешный старт SVN-сервера. На консоль выведется примерно следующее:
Path: localhostURL: svn://localhost Repository Root: svn://localhost Repository UUID: c422f63f-1457-454e-a783-90e2cfd0cfb5 Revision: 0 Node Kind: directory Last Changed Rev: 0 Last Changed Date: 2008-03-14 00:11:02 +0200 (Пт, 14 мар 2008)
По идее установка самого сервера закончена, и его уже можно использовать. Помещение, выгрузку исходников, коммит, апдэйт, контроль ревизий файлов, и т.д. можно осуществлять посредством того же консольного клинета svn, входящего в поставку вместе с самим сервером. Однако для более удобного пользования системой, можно посоветовать виндюшный SVN-клиент – черепашку TortoiseSVN. Программа встраивается в контектсные менюшки операционной системы и позволяет практически в любом месте и в любом файловом менеджере работать с SVN.
Большое спасибо за подробное описание процесса и самое главное – за ссылки на SVN-сервер. Почему-то про CVSNT все знают, а вот SVN-сервер под винду у меня найти не получалось. Может быть плохо искал. Попробую поставить на XP, посмотрим как получится.
Кстати интересно узнать ваше мнение о распределенных системах контроля версий. Mercurial и Git.
Всегда пожалуйста=)
Рад что прочитали мою статью.
О распределенных системах контроля версий Mercurial и Git, к моему стыду, честно признаться, и не слышал. Обязательно ознакомлюсь с данными системами.
PS. Мда, хреновый из меня блоггер. Комментарии незаапрувленные висят аж с 8 числа. Бляха, все время забываю про премодерацию комментариев от нового комментатора. Нет мне прощенья и всеже прошу меня извинить за столь долгое бездействие с моей стороны.
PSS. Да, Павел. И я думаю можно на “ты”.
Спасибо за мануал. Не представляю даже сколько я сэкономил времени.
Спасибо за краткое и понятно руководство!
Хорошо что ты обратил внимание на пробелы при написании пути.
К тому же у тебя различное описание путей. С одной стороны слешы влево с другой вправо. Не представляю как у тебя запустился данный пример.
А как правильно сносить репозитарий?
Громадное спасибо.
Как раз то что було нужно!
Спасибо брат.
Выручил.
Пиши еще пожалуйста – у тебя хорошо получается.
Еще бы такой же креатив по основам работы с CVN на реальном примере каком-нибудь.
Befatal, спасибо на добром слове :)
качаю как скачаю испробую ваш метод.
(до этого стоял VisualSVN).
Заранее спасибо
Привет! У меня вопрос возник. Я только начал разбираться с SVN.
Если я разрабатываю сайт на локальном компьютере и обращаюсь к нему по адресу http://localhost/site. То он у меня сразу появляется в браузере (т.е. я вижу сразу, что сделал)
Теперь я настроил svn+apache и импортировал проект в SVN репозиторий. Затем подключился к SVN и начинаю править файлы уже в SVN, но теперь, чтобы увидеть результат работы, мне необходимо делать каждый раз экспорт сайта и ложить его снова http://localhost/site. Т.к. если я подключаюсь к репозиторию так: http://localhost/repos/site/ , то у меня высвечивается просто список файлов данного проекта.
Вопрос можно ли настроить так SVN+Apache, чтобы я мог при работе с SVN видеть онлайн результат т.е. если я вводил адрес http://localhost/repos/site/ у меня Apache выводил сайт на экран, а не список фалов проекта.
Или так вообще нельзя сделать?