Ставим Subversion за 5 минут
Многие начинающие разработчики слышали о средствах контроля за версиями, CVS и SVN, но побаиваются его использовать ввиду “сложности настройки”, особенно на windows (в той же fedora svn предустановлен). Несколько дней я тоже впервые занялся установкой subversion и на первый взгляд все было ужасно сложно.
Качаем
Нам необходимо загрузить сам и клиент для работы с ним. В качестве клиента рекомендую воспользоваться , в котором максимально быстро разберется новичок и при этом для этого клиента доступен русский язык.
Итак качаем , и к нему.
Установка
Установка проходит легко и непринужденно, везде достаточно нажимать “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.

А у меня уже стоит классная вещь
Я тоже так считаю.
Вот этим материалом хочу расширить круг пользователей.
Использую активно. Статья рулит!
Спасибо за положительную оценку.
А для чего обращаться к репозиторию через сервер, если он находится на том же компьютере, что и рабочая копия? Может лучше локально используя url: file:///c:/svn-store/my_project
Или я чего то не усвоил?
Да, так можно. Но я посчитал, что лучше сразу описать сетевой способ. Локальный слишком прост, чтобы его вообще описывать - достаточно установить SVN и клиент и подключаться по указанному вами адресу.
Я одного догнать не могу: я делаю одно хранилище для всех проектов или для каждого создаю свое?
Да, для каждого нужно делать отдельное.
Можно и так и так. Если для каждого проекта свое хранилище - то у каждого проекта свои revision numbers. Если хранилище общее - то revisions будут общие.
не забывайте только еще и стартовать SVN сервер svnserve.exe -d
–listen-port СВОЙ_ПОРТ -r ПУТЬ_К_ХРАНИЛИЩУ_РЕПОЗИТОРИЕВ
У меня он службой в Винде стартует
Автору спасибо за статью. Если кому надо, описание как установить svn как службу винды здесь:
http://svn.collab.net/repos/svn/trunk/notes/windows-service.txt
Кто-нибудь подскажет, как узнать, на каком порту SVN стартовал по умолчанию (если при старте SVN сервера
svnserve.exe -d –listen-port СВОЙ_ПОРТ -r ПУТЬ_К_ХРАНИЛИЩУ_РЕПОЗИТОРИЕВ)
–listen-port СВОЙ_ПОРТ не был указан?
Могу предложить только посмотреть netstat -an до запуска и после, а потом сравнить. Хотя по умолчанию согласно доке при запуске с ключом -d порт 3690.
Спасибо.
Попробуем..
Просто в статье по умолчанию был указал порт
svn://localhost:8082/my_project/
Я у себя попробовал - с таким портом не работало (без указания порта - все, естественно, ОК).
А порт по умолчанию в доке чего-то не нашел..
А еще вопрос, может кто подскажет (либо ссылку на статью подкиньте).
Как нормально (и безопасно) поднять SVN под Windows чтобы с ним можно было работать из internet (есть реальный IP).
Допустим через протокол https:\\.
Я в svn-book кое-чего почитал, но в web-технологиях я не особо силен, многих вещей не понял.. В общем, хотелось бы подобное руководство (кстати, оно для начинающих очень хорошее), только для моей задачи..
давно ей пользуюсь! рекомендую
Ввожу в импорт: “svn://localhost:8082/my_project/”, результате клиент отвечает “конечный компьютер отверг запрос”. Игрался уже и с файерволом, и с локалхостом (пробовал свой ип в сети, 127.0.0.1) - ничего не помогает.
Я уже голову сломал, в чём дело, неужели в карме?
Помогите советом..
снесите сервер и клиент, поставьте их заново.
Ребят, кто подскажет оно с Win2k работает ?
Интересует именно серверная часть. Поставил, делал по инструкции (не с этого сайта), что то как то … нифига в общем.
Всё, добил. )
Запустил и все работает.
Но когда подключаюсь к СВН то всегда пишет - Error: Authorization failed
При этом окна логина и пароля не просит. А сразу ошибку выдает!
Видимо, файл с паролями был неправильно создан.
Огромнейшее спасибо за статью!!! RESPECT!!! Мессага об ошибочной аутентификации меня прост убивала… А тут все дело в шляпе… Толковая статья. Коротко и в тему.
Рад, что статейка кому-то помогла.
Специально писал максимально коротко и просто. Многое не описано, но такой задачи и не ставилось. Хотел показать, как начать работать.
Как создать учетные записи? Пользователю необходимо дать права только на 2 каталога. Напишите пожалуйста конкртно, т.е. как есть. В книгах все на английском ,ну а я не силен. СПАСИБО
К сожалению, мне кажется, что никак, т.к. суть SVN в раздаче прав на проекты, а не части проектов. Но я не сильно углублялся в администрирование.
Во-первых, спасибо за ответ. Но теперь появился новый вопрос. Т.к. первый был неправильно сформулирован. На самом деле мне необходимо раздать права на проекты. Как это сделать я не знаю. Просто я пока не силен в администрировании:?) Если знаешь как это сделать напиши пожалуйста пошагово. очень нужно.
For subvrsion 1.4
Спасибо за статью
Огромное спасибо за статью.
Идеальное руководство для быстрого старта, без него я долго бы собирался с духом (путаную документацию по SVN довольно тяжело читать, слишком уж “популяризировано”, много воды).
Есть вопрос: проект находится на удалённом компьютере. Сервер стоит на моём компьютере. Доступ на удалённый компьютер производится черезhttp://ftp . Вопрос в следующем: как добавить папку с удалённого компьютера в мой репозитарий?
(открываю папку через эксплорер, пункта TortoiseSVN->Импортировать… во всплывающем меню нету.)
как обновлять из репозитория только один файл?
Тыкать и выбирать из списка лишь один файл, а не папку.
Поставил я себе 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’
С прописанным портом тоже самое…
Кто может подсказать или может у кого была подобная ошибка? Говорит, что по данному адресу хранилище не найдено?
при импорте в репозиторий пишет - невозможно подключиться к localhost, сервер не отвечает
Давно хотел себе SVN дома поставить, но не знал как
Без лишних слов - спасибо! Помогло!
Поставил себе сабвершн 1.4.6 и глюк пропал!
попробуй поставить версию сабвершн 1.4.6 мне это помогло
Хорошо написано. А это все на основе личного опыта?Позвольте поинтересоваться
Интересно, вы когда нибудь будете уточнять что данная статья про установку на Windows, а то как буд-то больше нет операционных систем. Пришлось читать почти пол-статьи зря
Спасибо за статью, вот еще статейку про хуки не мешало бы рядом написать!
Творчество легендарного американского музыканта, певца, короля рок-н-ролла Элвис Пресли.
Вы можете ознакомиться с его биографией, фильмографией и дискографией. Большое собрание текстов песен, аккордов, нот 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 выводил сайт на экран, а не список фалов проекта.
Или может кто ссылкой поделится, где можно узнать про это.(конечно если так вообще можно сделать)
Спасибо. Именно данной инфы для начала у меня не хватало!
Знакомства в интернете,реальные люди и бесплатная регистрация,способ найти себе партнера.
# Создаем папочку C:\svn-store\
# Заходим в консоль (Пуск->Выполнить, cmd)
Куда уж точнее?
Не получилось настроить, чтобы был доступ по svn://localhost:8082/my_project/не установлено, т. к. конечный компьютер отверг запрос на подключение.
Пишет :Can’t connect to host ‘localhost’: Подключение