Subversion на Windows. Настройка сервера SVN и клиента Tortoise SVN

Данная статья рассматривает вопрос установки сервера Subversion и клиентской программы Turtoise SVN на Windows.

Главное не пугаться :)  этот процесс занимает немного времени для человека столкнувшегося с этим впервые и, конечно же, имеющего достаточную скорость чтения и восприятия материала:-).

Краткую информацию о Subversion можно найти тут.

Сервер Subversion

Первым этапом нам необходимо скачать и установить сервер Subversion.
Скачаем инсталяционный пакет свежей версии Subversion (http://subversion.tigris.org/servlets/ProjectDocumentList) для Windows, т.е. «Windows binaries». В моем случае это «Setup-Subversion-1.6.0.msi».

После запуска инсталяции необходимо ввести путь установки. Я выбрал «c:\svn\».

Установщик самостоятельно пропишет путь к исполняемым файлам Svn (c:\svn\bin) и у Вас появится возможность запускать их из командной строки.

Дальнейшие команды будем выполнять в командной строке.

start-run-menu Далее:  «Пуск»->»Выполнить» («Start»->»run») и вводим «cmd».

start-run-cmdЖмем «Enter».cmdСоздадим наше первое хранилище:

svnadmin create "c:\svn\repo"

Во вновь созданной директории «c:\svn\repo\conf\» раскомментируйте ( необходимо удалить все символы перед директивами указанными ниже ) и измените, если это необходимо, строки в файле svnserve.conf следующим образом:
anon-access = none #запрещает анонимный доступ
...
auth-access = write #разрешает запись для авторизорованных пользователей
...
password-db = passwd #указывает файл-базу паролей

Следующим шагом добавим несколько пользователей в файл-базу «c:\svn\repo\conf\passwd«.

К примеру:

henrymotu = createitsecret

Есть возможность установить сервер Subversion как службу Windows для обеспечения автозапуска, следующим образом:
sc create svnserver binpath= "c:\svn\bin\svnserve.exe --service -r c:\svn\repo" depend= Tcpip start= auto

, где sc create [имя нашей службы]

binpath=[путь к исполняемому файлу службы (svnserve.exe) и его параметры «—service» и «-r c:\svn\repo»] depend=[зависимости от других служб]

start=[тип запуска]
Подробнее работе с Windows командой sc можно почитать в справке Windows.

(Кстати, следует иметь в виду, что служба работает от прав локального пользователя. Если для выполнения каких-либо задач службе не хватает прав, необходимо в оснастке управления службами Windows выставить в свойствах службы пользователя, от которого необходимо запускать службу.)run-svn-from-adminrightsДля того, чтобы служба загрузилась, можно перезагрузить систему, но Мы воспользуемся командой:

net start svnserver

, где net start [имя службы, введенное раньше]
После успешного запуска службы можно пользоваться хранилищем с помощью утилиты svn.
Для потребностей Subversion необходимо указать переменную окружения SVN_EDITOR для того, чтобы определить текстовый редактор по умолчанию. Это необходимо для соблюдения правил хорошего тона программирования — комментарии. Забегая немного вперед, объясню, при сохранении проекта в хранилище необходимо (желательно) указывать комментарии ко всем внесенным изменениям.
set SVN_EDITOR=c:\windows\system32\notepad.exe

либо
set SVN_EDITOR=notepad

Проверим работоспособность хранилища:
svn mkdir svn://localhost/projectnamesvn

Если все настроено верно, откроется программа «notepad» в окне которой необходимо будет внести Ваш комментарий.notepad-svn-comments-my-first
После сохранения документа и выхода, в командной строке Subversion запросит Вас ввести пароль Администратора. Пропускаем ввод пароля администратора нажатием кнопки «Enter». Вводим логин и пароль пользователя ранее добавленного в файл «c:\svn\repo\conf\passwd» ( henrymotu = createitcomua). Если все прошло успешно, должна появиться запись «Committed revision 1.».
svn mkdir svn://localhost/myproject
Authentication : <svn://localhost:3690>
Password for 'Administrator': [enter]
Authentication : <svn://localhost:3690>
Username: henrymotu
Password for 'henrymotu': *************
 
Committed revision 1.

Поздравляю! Вы только что отметились в Контроллере версий:-)
Мы использовали протокол svn://, который использует TCP порт 3690. Этот нюанс необходимо учесть в политике Вашего фаервола, чтобы к Вам смогли подключаться другие пользователи.

Клиент SVN

Можно использовать и стандартный svn клиент, но, чаще всего, для Windows используют TortoiseSVN. Данный клиент SVN существует в двух версиях: 32-х разрядной и 64-x разрядной. Скачаем свежую версию данного клиента (у меня TortoiseSVN-1.6.11.20210-win32-svn-1.6.13). turtoise-svn-install

После установки можно проигнорировать перезагрузку системы.

Теперь, создадим каталог для нашего проекта. К примеру — c:\project.

Клиент TurtoiseSVN после установки встраивает свои пункты в контекстное меню директорий.turtoise-popup-menu

Выберем пункт «SVN Checkout…» в контекстном меню созданной директории (c:\project).

В поле «Url of repository:» вводим адрес нашего хранилища svn://localhost/projectname/ (конечно, для сетевых пользователей следует вводить имя, либо IP-адрес Вашей машины в сети) и жмем «Ok».

turtoise-checkout
Сейчас Tortoise сделала ассоциацию директории «c:\project» с хранилищем «svn://servername/projectname» в контролере версий. Любые изменения, внесенные Вами в проект в Вашей локальной системе могут быть отменены посредством контроля версий.

Есть стандартная форма структуры родительского каталога проекта — TTB (trunk-tags-branches):
Содружество пользователей Subversion склоняются использовать корень хранилища как родительского каталога проекта.
В каждом проекте создаются такие каталоги:
— trunk , который содержит файлы основного направления разработки проекта;
— branches, который содержит вариации основного направления разработки проекта;
— tags, который содержит «снимки» дерева проекта, которые создаются и удаляются, но никогда не изменяются;

Создадим данные каталоги в нашей рабочей версии проекта (в локальной версии).ttb-catalogs

Как Вы видите, каталоги отмечены знаком вопроса, который отображает, что данные изменения не приняты. Для принятия всех изменений внесенных Вами, выполним команду «SVN Commit…» контекстного меню каталога рабочего проекта.ttb-catalogs-commit

В появившемся окне вводим текст комментария к изменениям и подтверждаем,что именно нужно принять. Конечно, комментарий можно и не вносить, но это, я повторюсь, считается хорошим тоном ведения процесса контроля версий.

commit-windowЕсли Вы ранее не вводили данные учетной записи с правами на запись, они будут запрошены и после успешного ввода SVN Turtoise они будут сохранены для дальнейшего использования.

commit-finished
Можем более тонко настроить работу SVN Turtoise. Выполните команду «TurtoiseSVN»->»Settings».
turtoisesvn-settings Про все возможные параметры в данном окне можно прочитать в справке к программе, нажав кнопку «Справка».
Вкратце, здесь можно настроить внешний вид и порядок работы программы.

turtoisesvn-settings-window

Удаленный пользователь Subversion

Для удаленного использования Вашего хранилища, на компьютере удаленного пользователя необходимо установить Turtoise SVN, как мы и рассматривали ранее. Главное не забыть, что необходимо ввести имя, либо IP-адрес Вашего компьютера при вводе URL-адреса хранилища в окне «SVN Checkout…».

turtoise-checkout Для данного примера, если IP-адрес нашего компьютера 192.168.1.1 —  svn://192.168.1.1/projectname

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *