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.
Огромное спасибо за статью.
Идеальное руководство для быстрого старта, без него я долго бы собирался с духом (путаную документацию по SVN довольно тяжело читать, слишком уж «популяризировано», много воды).
Есть вопрос: проект находится на удалённом компьютере. Сервер стоит на моём компьютере. Доступ на удалённый компьютер производится через ftp. Вопрос в следующем: как добавить папку с удалённого компьютера в мой репозитарий?
(открываю папку через эксплорер, пункта TortoiseSVN->Импортировать… во всплывающем меню нету.)
Обновите клиентскую часть(TurtoiseSVN)
как обновлять из репозитория только один файл?
Тыкать и выбирать из списка лишь один файл, а не папку.
Поставил я себе SVN так, как описано выше. При этом он у меня работает ОЧЕНЬ медленно. Создание рабочей копии проекта может длится до получаса привсем при том, что сам проект относительно небольшой. При этом сама система грузится почти на 100%, что либо параллельно делать просто невозможно.
На работе SVN стоит на удаленном сервере, работает в разы быстрее. А это же на локальном компьютере, должно быть быстрее, а оно наоборот.
В чем моежт быть проблема?
Так и не получилось русифицировать: запускаю русификатор — пишет что выполнено успешно, а результата нет.
поскажите пожалуста почему у меня логин и пароль не запрашивает?????
Error * D:\REPOSITORY\project\conf\svnserve.conf:2: Option expected
кто подскажет почему вылетает?
файл конфигурации
[general]
anon-access = read
auth-access = write
password-db = passwd
А ты уверен что перед anon-access = read и далее нет пробелов?такое вылазит если поставить пробел в начале строки параметра
Это называется «сложность настройки»? Блин! Я думал тут напишут, как собрать под виндой эту пакость из исходников! Про всякие perl/apache/ssl-привязки. Вот в этой части документация реально — черт ногу сломит. Не столько сложно, сколько нудно выуживать оттуда долбаные dependency-ссылки на всякие неоны, zlib’ы, apr’ы и нужные настройки. И всё это чтобы установить какой-то сраный скриптик на перле! Ну не задница ли?
Сборка под виндой Subversion… жестко у вас тут :-))
Если репозиторий локальный, то можно anon-access = read заменить на write — всё равно никто кроме вас этого делать не станет. У меня про это тоже был пост, жалко ваш поздно увидел.
И да, командная строка бывает удобной 🙂 При работе с Subversion это особенно заметно.
10x
Зделал всё по гайду!Создал папку проекта создалось всё.Раскоментировал в конфиге
anon-access = read
auth-access = write
password-db = passwd
Создал пользователя в файле пасворд прописал:
webdes27 = 261187
пытался слить в проект нефига не получается.Не конектит.
И запустить пытался уже через запрос:
svnserve.exe -d –listen-port 3690 -r c:/svn-store/my_project
и не фига!И 8082 порт ставил.Я в первый раз ставлю свн такого типа.Очень был бы благодарен если б подсказали в чём моя ошибка.
у кого получилось настроить чтобы сервер стартовал службой ?
у меня
sc create svnserve binpath= «C:\Program Files\Subversion\bin\svnserve.exe —service –listen-port 8082 -r C:\svn-store\my_project» displayname= «Subversion Repository» depend= Tcpip
не хочет стартовать, ругается типа служба не может быть запушена тк она не ответила вовремя. 🙁
А я так с ним и не разобрался — как сделать так, что бы концы строк в линуксе и windows были разными, но в репозитарии лежали бы одинаково.
Кто-нибудь знает русскоязычный форум по этой программе, есть вопрос по ведению лога.
У меня выдает такую ошибку — No repository found in ‘svn://localhost/project’
С прописанным портом тоже самое…
попробуй поставить версию сабвершн 1.4.6 мне это помогло
Кто может подсказать или может у кого была подобная ошибка? Говорит, что по данному адресу хранилище не найдено?
при импорте в репозиторий пишет — невозможно подключиться к localhost, сервер не отвечает
Давно хотел себе SVN дома поставить, но не знал как 🙁
Без лишних слов — спасибо! Помогло!
Поставил себе сабвершн 1.4.6 и глюк пропал!
Хорошо написано. А это все на основе личного опыта?Позвольте поинтересоваться 🙂
Интересно, вы когда нибудь будете уточнять что данная статья про установку на Windows, а то как буд-то больше нет операционных систем. Пришлось читать почти пол-статьи зря 🙂
# Создаем папочку C:\svn-store\
# Заходим в консоль (Пуск->Выполнить, cmd)
Куда уж точнее?
Спасибо за статью, вот еще статейку про хуки не мешало бы рядом написать!
Творчество легендарного американского музыканта, певца, короля рок-н-ролла Элвис Пресли.
Вы можете ознакомиться с его биографией, фильмографией и дискографией. Большое собрание текстов песен, аккордов, нот guitar pro, караоке песен и множество фотографий Элвиса Пресли.
Каждому Доброе утро! А вы не задумывались о том, что с помощью компьютера, даже не выходя из дому можно зарабатывать деньги? А при правильном подходе даже очень большие деньги! О том как этого добиться, вы узнаете посетив сайт ИНСТИНКТ.
Привет! У меня вопрос возник, конечно может не совсем к этой статье. Вот здесь описан способ использования tortoiseSVN. Я только начал разбираться с SVN.
Если я разрабатываю сайт на локальном компьютере и обращаюсь к нему по адресу http://localhost/site. То он у меня сразу появляется в браузере (т.е. я вижу сразу, что сделал)
Теперь я настроил svn+apache и импортировал проект в SVN репозиторий. Затем подключился к SVN и начинаю править файлы уже в SVN, но теперь, чтобы увидеть результат работы, мне необходимо делать каждый раз экспорт сайта и ложить его снова http://localhost/site. Т.к. если я подключаюсь к репозиторию так: http://localhost/repos/site/ , то у меня высвечивается просто список файлов данного проекта.
Вопрос можно ли настроить так SVN+Apache, чтобы я мог при работе с SVN видеть онлайн результат т.е. если я вводил адрес http://localhost/repos/site/ у меня Apache выводил сайт на экран, а не список фалов проекта.
Или может кто ссылкой поделится, где можно узнать про это.(конечно если так вообще можно сделать)
Думаю надо сделать http://localhost/site рабочей папкой (этож реально какой-то каталог на твоем компе — если Денвер, то это Z:\home\localhost\www\site например, ну или его реальный путь без виртуального диска или реально папка сайта в дереве апача, если без денвера) и там всегда будет рабочая копия.. тоесть сделать там SVN Извлечь…
Спасибо. Именно данной инфы для начала у меня не хватало!