30 января 2007
Ставим Subversion за 5 минут
Многие начинающие разработчики слышали о средствах контроля за версиями, CVS и SVN, но побаиваются его использовать ввиду «сложности настройки», особенно на windows (в той же fedora svn предустановлен). Несколько дней я тоже впервые занялся установкой subversion и на первый взгляд все было ужасно сложно.
Качаем
Нам необходимо загрузить сам сервер и клиент для работы с ним. В качестве клиента рекомендую воспользоваться tortoiseSVN, в котором максимально быстро разберется новичок и при этом для этого клиента доступен русский язык.
Итак качаем последнюю stable-версию сервера, клиент и русификацию к нему.
Установка
Установка проходит легко и непринужденно, везде достаточно нажимать «next». Желательно устанавливать сначала сервер, потом клиент, затем русификацию к клиенту.
Создаем первый репозитарий (хранилище)
- Создаем папочку C:\svn-store\
- Заходим в консоль (Пуск->Выполнить, cmd) и пишем:
svnadmin create c:/svn-store/my_project
Обратите внимание на слеши! Они должны указываться именно так, на манер unix.
В случае успешного создания репозитория никаких ошибок не появится. - Открываем файл C:/svn-store/my_project/conf/svnserve.conf и раскомментируем строчки:
anon-access = read
auth-access = writeТ.е. мы разрешаем всем скачивать файлы из репозитария, а зарегистрированным пользоватеям — и закачивать данные в него. Чаще всего используется именно такая политика. Данные о пользователях лежат в файле, который указывается в строчке (которую также нужно раскомментировать):
password-db = passwd
Т.е. так мы показываем, что в папке C:\svn-store\my_project\conf лежит файл passwd c указанием логинов и паролей зарегистрированных пользователей.
- Идем в C:\svn-store\my_project\conf\passwd, открыв его любым текстовым редактором и создаем учетные записи пользователей в секции users. Формат их таков:
ilya = strangeword
masha = simpleword
Заполняем репозитарий
Необходимо произвести импорт, начальное наполнение нашего репозитария. Для этого заходим в папку с вашим проектом (программой, текстами, скриптами и т.д.), щелкаем правой кнопкой мыши на свободном месте и выбираем TortoiseSVN->Импортировать…
В качестве URL вводим:
svn://localhost:8082/my_project/
Если вы подключаетесь не с локальной машины к SVN, то вместо localhost укажите IP-адрес или сетевое имя системы с SVN.
У вас должны спросить логин и пароль. Указывайте те данные, которые внесли в C:\svn-store\my_project\conf\passwd. Если вместо окошка для ввода логина и пароля вы не увидели, возвращайтесь к пунктам про правку C:\svn-store\my_project\conf\svnserve.conf и C:\svn-store\my_project\conf\passwd — вы либо не раскомментировали строчки, либо не указали логины/пароли.
В случае успешного заполнения вы увидите нечто подобное:
Работа с tortoiseSVN
Теперь создайте пустую папку и вызовите в ней по правой кнопке мыши «SVN Извлечь…». URL тот же (svn://localhost:8082/my_project/). Так вы загрузите в данную папку рабочую копию проекта из репозитария. Кроме файлов проекта в ней появится скрытая папка «.svn» — ее ни в коем случае не трогайте, она используется SVN во время фиксации (commit’a) изменений в репозитарий.
Вы можете делать хоть что (не считая папки .svn и ее содержимого, которые трогать нельзя) — создавать/править/удалять файлы проекта. Для записи изменений в репозитарий щелкните правой кнопкой мыши в папке и выберите «SVN Фиксировать…» (SVN Commit). Чтобы обновить свою рабочую копию до состояния в репозитории — «SVN Обновить» (SVN Update).
Думаю, дальнейшее освоение не вызовет проблем. А на первое время описанных действий хватит. 🙂
Post scriptum
Описанный метод — лишь один из множества. Я не стал описывать все тонкости и возможности, т.к. это заняло бы очень много времени. Пишите вопросы в комментариях — я постараюсь ответить. Но рекомендую почитать SVN Book, подробное руководство по SVN.
Ничего не работает. После нажатия импортировать выбивает ошибку «Can’t connect to host ‘localhost’: Подключение не установлено, т.к. конечный». Сделал все по инструкции.
а у меня всё заработало, только ставил я не по этим ссылкам, а с офсайта. Просто Subversion 1.6
без сервака. Создал через svnadmin.exe проект как тут описано, а дальше свои проекты php`шные через NetBeans IDE залил.