Установка SVN (Subversion) Windows Service

В срочном порядке необходимо было установить 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 create  binPath= "\"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.

Leave a comment

10 Comments.

  1. Большое спасибо за подробное описание процесса и самое главное – за ссылки на SVN-сервер. Почему-то про CVSNT все знают, а вот SVN-сервер под винду у меня найти не получалось. Может быть плохо искал. Попробую поставить на XP, посмотрим как получится.

    Кстати интересно узнать ваше мнение о распределенных системах контроля версий. Mercurial и Git.

  2. Всегда пожалуйста=)
    Рад что прочитали мою статью.
    О распределенных системах контроля версий Mercurial и Git, к моему стыду, честно признаться, и не слышал. Обязательно ознакомлюсь с данными системами.

    PS. Мда, хреновый из меня блоггер. Комментарии незаапрувленные висят аж с 8 числа. Бляха, все время забываю про премодерацию комментариев от нового комментатора. Нет мне прощенья и всеже прошу меня извинить за столь долгое бездействие с моей стороны.
    PSS. Да, Павел. И я думаю можно на “ты”.

  3. Спасибо за мануал. Не представляю даже сколько я сэкономил времени.

  4. Спасибо за краткое и понятно руководство!
    Хорошо что ты обратил внимание на пробелы при написании пути.
    К тому же у тебя различное описание путей. С одной стороны слешы влево с другой вправо. Не представляю как у тебя запустился данный пример.

  5. А как правильно сносить репозитарий?

  6. Громадное спасибо.
    Как раз то что було нужно!

  7. Спасибо брат.
    Выручил.
    Пиши еще пожалуйста – у тебя хорошо получается.
    Еще бы такой же креатив по основам работы с CVN на реальном примере каком-нибудь.

  8. Befatal, спасибо на добром слове :)

  9. качаю как скачаю испробую ваш метод.
    (до этого стоял VisualSVN).
    Заранее спасибо

  10. Привет! У меня вопрос возник. Я только начал разбираться с SVN.

    Если я разрабатываю сайт на локальном компьютере и обращаюсь к нему по адресу http://localhost/site. То он у меня сразу появляется в браузере (т.е. я вижу сразу, что сделал)

    Теперь я настроил svn+apache и импортировал проект в SVN репозиторий. Затем подключился к SVN и начинаю править файлы уже в SVN, но теперь, чтобы увидеть результат работы, мне необходимо делать каждый раз экспорт сайта и ложить его снова http://localhost/site. Т.к. если я подключаюсь к репозиторию так: http://localhost/repos/site/ , то у меня высвечивается просто список файлов данного проекта.

    Вопрос можно ли настроить так SVN+Apache, чтобы я мог при работе с SVN видеть онлайн результат т.е. если я вводил адрес http://localhost/repos/site/ у меня Apache выводил сайт на экран, а не список фалов проекта.

    Или так вообще нельзя сделать?

Leave a Reply


[ Ctrl + Enter ]