Вы здесь

Установка Subversion

Многие начинающие разработчики слышали о средствах контроля за версиями, CVS и SVN, но побаиваются его использовать ввиду "сложности настройки", особенно на windows (в той же fedora svn предустановлен). Несколько дней я тоже впервые занялся установкой subversion и на первый взгляд все было ужасно сложно.

Качаем

Нам необходимо загрузить сам сервер и клиент для работы с ним. В качестве клиента рекомендую воспользоваться tortoiseSVN, в котором максимально быстро разберется новичок и при этом для этого клиента доступен русский язык.

Итак качаем последнюю stable-версию сервера, клиент и русификацию к нему.

Установка

Установка проходит легко и непринужденно, везде достаточно нажимать "next". Желательно устанавливать сначала сервер, потом клиент, затем русификацию к клиенту.
Теоретически после установки сервер svn должен быть установлен как сервис, однако у меня он не появился в списке сервисов. Поэтому предлагаю вам wrapper для сервера, который устанавливается как сервис и запускает svn-сервер.
Для этого запустите строку

sc create svnserve binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r c:\svn-rep" displayname= "Subversion" depend= tcpip start= auto

Создаем первый репозитарий (хранилище)

  • Создаем папочку C:\svn-rep\
  • Заходим в консоль (Пуск->Выполнить, cmd) и пишем:
    svnadmin create c:/svn-rep/storage

    Обратите внимание на слеши! Они должны указываться именно так, на манер unix.
    В случае успешного создания репозитория никаких ошибок не появится.

  • Открываем файл C:/svn-rep/storage/conf/svnserve.conf и раскомментируем строчки:
    anon-access = read
    auth-access = write

    Т.е. мы разрешаем всем скачивать файлы из репозитария, а зарегистрированным пользователям - и закачивать данные в него. Чаще всего используется именно такая политика. Данные о пользователях лежат в файле, который указывается в строчке (которую также нужно раскомментировать):

    password-db = passwd

    Т.е. так мы показываем, что в папке C:\svn-rep\storage\conf лежит файл passwd c указанием логинов и паролей зарегистрированных пользователей.

  • Идем в C:\svn-rep\storage\conf\passwd, открыв его любым текстовым редактором и создаем учетные записи пользователей в секции users. Формат их таков:
    kirill = mypassword
    krasnov = stongpass

Заполняем репозитарий

Необходимо произвести импорт, начальное наполнение нашего репозитария. Для этого заходим в папку с вашим проектом (программой, текстами, скриптами и т.д.), щелкаем правой кнопкой мыши на свободном месте и выбираем TortoiseSVN->Импортировать...

В качестве URL вводим:

svn://localhost/storage/

Если вы подключаетесь не с локальной машины к SVN, то вместо localhost укажите IP-адрес или сетевое имя системы с SVN.

У вас должны спросить логин и пароль. Указывайте те данные, которые внесли в C:\svn-rep\storage\conf\passwd. Если вместо окошка для ввода логина и пароля вы не увидели, возвращайтесь к пунктам про правку C:\svn-rep\storage\conf\svnserve.conf и C:\svn-rep\storage\conf\passwd - вы либо не раскомментировали строчки, либо не указали логины/пароли.

В случае успешного заполнения вы увидите нечто подобное:

Работа с tortoiseSVN

Теперь создайте пустую папку и вызовите в ней по правой кнопке мыши "SVN Извлечь...". URL тот же (svn://localhost/my_project/). Так вы загрузите в данную папку рабочую копию проекта из репозитария. Кроме файлов проекта в ней появится скрытая папка ".svn" - ее ни в коем случае не трогайте, она используется SVN во время фиксации (commit'a) изменений в репозитарий.

Вы можете делать хоть что (не считая папки .svn и ее содержимого, которые трогать нельзя) - создавать/править/удалять файлы проекта. Для записи изменений в репозитарий щелкните правой кнопкой мыши в папке и выберите "SVN Фиксировать..." (SVN Commit). Чтобы обновить свою рабочую копию до состояния в репозитории - "SVN Обновить" (SVN Update).

Думаю, дальнейшее освоение не вызовет проблем. А на первое время описанных действий хватит.

Post scriptum

Описанный метод - лишь один из множества. Я не стал описывать все тонкости и возможности, т.к. это заняло бы очень много времени. Пишите вопросы в комментариях - я постараюсь ответить. Но рекомендую почитать SVN Book, подробное руководство по SVN.