Ежовый угол

Avatar

Сеть, Рунет, телеком, Иркутск

Ставим 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.



RSS Feed | Trackback URI

Комментариев: 67 »


+ Comment by Альберт
Четверг, 1 февраля 2007 @ 12:54

А у меня уже стоит классная вещь :)


+ Comment by Ilya Rudomilov
Четверг, 1 февраля 2007 @ 13:41

Я тоже так считаю. :) Вот этим материалом хочу расширить круг пользователей.

 

+ Comment by SofT MANiAC
Четверг, 1 марта 2007 @ 20:58

Использую активно. Статья рулит!


+ Comment by Ilya Rudomilov
Четверг, 1 марта 2007 @ 21:26

Спасибо за положительную оценку. :)

(Comments wont nest below this level)
 
 
 

+ Comment by mikireff
Среда, 7 февраля 2007 @ 00:46

А для чего обращаться к репозиторию через сервер, если он находится на том же компьютере, что и рабочая копия? Может лучше локально используя url: file:///c:/svn-store/my_project
Или я чего то не усвоил?


+ Comment by Ilya Rudomilov
Среда, 7 февраля 2007 @ 01:14

Да, так можно. Но я посчитал, что лучше сразу описать сетевой способ. Локальный слишком прост, чтобы его вообще описывать - достаточно установить SVN и клиент и подключаться по указанному вами адресу.

 
 

+ Comment by Mike
Среда, 14 марта 2007 @ 21:23

Я одного догнать не могу: я делаю одно хранилище для всех проектов или для каждого создаю свое?


+ Comment by Ilya Rudomilov
Среда, 14 марта 2007 @ 22:23

Да, для каждого нужно делать отдельное.

 

+ Comment by Jay
Вторник, 24 апреля 2007 @ 23:49

Можно и так и так. Если для каждого проекта свое хранилище - то у каждого проекта свои revision numbers. Если хранилище общее - то revisions будут общие.

 
 

+ Comment by gibz
Вторник, 20 марта 2007 @ 02:34

не забывайте только еще и стартовать SVN сервер svnserve.exe -d
–listen-port СВОЙ_ПОРТ -r ПУТЬ_К_ХРАНИЛИЩУ_РЕПОЗИТОРИЕВ

 

+ Comment by Mike
Вторник, 20 марта 2007 @ 13:52

У меня он службой в Винде стартует

Вторник, 10 апреля 2007 @ 20:35

Автору спасибо за статью. Если кому надо, описание как установить svn как службу винды здесь:
http://svn.collab.net/repos/svn/trunk/notes/windows-service.txt

 
 

+ Comment by Igor_
Вторник, 20 марта 2007 @ 17:49

Кто-нибудь подскажет, как узнать, на каком порту SVN стартовал по умолчанию (если при старте SVN сервера
svnserve.exe -d –listen-port СВОЙ_ПОРТ -r ПУТЬ_К_ХРАНИЛИЩУ_РЕПОЗИТОРИЕВ)
–listen-port СВОЙ_ПОРТ не был указан?

 

+ Comment by Mike
Вторник, 20 марта 2007 @ 19:43

Могу предложить только посмотреть netstat -an до запуска и после, а потом сравнить. Хотя по умолчанию согласно доке при запуске с ключом -d порт 3690.


+ Comment by Igor_
Вторник, 20 марта 2007 @ 20:21

Спасибо.
Попробуем..

Просто в статье по умолчанию был указал порт
svn://localhost:8082/my_project/

Я у себя попробовал - с таким портом не работало (без указания порта - все, естественно, ОК).

А порт по умолчанию в доке чего-то не нашел..

 
 

+ Comment by Igor_
Вторник, 20 марта 2007 @ 20:26

А еще вопрос, может кто подскажет (либо ссылку на статью подкиньте).

Как нормально (и безопасно) поднять SVN под Windows чтобы с ним можно было работать из internet (есть реальный IP).
Допустим через протокол https:\\.

Я в svn-book кое-чего почитал, но в web-технологиях я не особо силен, многих вещей не понял.. В общем, хотелось бы подобное руководство (кстати, оно для начинающих очень хорошее), только для моей задачи..

 

+ Comment by StyleXP
Суббота, 9 июня 2007 @ 17:05

давно ей пользуюсь! рекомендую

 

+ Comment by mastikhin
Среда, 13 июня 2007 @ 15:17

Ввожу в импорт: “svn://localhost:8082/my_project/”, результате клиент отвечает “конечный компьютер отверг запрос”. Игрался уже и с файерволом, и с локалхостом (пробовал свой ип в сети, 127.0.0.1) - ничего не помогает.
Я уже голову сломал, в чём дело, неужели в карме?
Помогите советом..


+ Comment by qik
Среда, 1 августа 2007 @ 01:57

снесите сервер и клиент, поставьте их заново.

 
 

+ Comment by Tee
Среда, 13 июня 2007 @ 20:25

Ребят, кто подскажет оно с Win2k работает ?
Интересует именно серверная часть. Поставил, делал по инструкции (не с этого сайта), что то как то … нифига в общем.


+ Comment by Tee
Четверг, 28 июня 2007 @ 21:05

Всё, добил. )

 
 

+ Comment by маин
Четверг, 28 июня 2007 @ 19:41

Запустил и все работает.
Но когда подключаюсь к СВН то всегда пишет - Error: Authorization failed
При этом окна логина и пароля не просит. А сразу ошибку выдает!


+ Comment by Ilya Rudomilov
Четверг, 28 июня 2007 @ 20:14

Видимо, файл с паролями был неправильно создан.

 
 

+ Comment by Анатолий
Пятница, 20 июля 2007 @ 14:38

Огромнейшее спасибо за статью!!! RESPECT!!! Мессага об ошибочной аутентификации меня прост убивала… А тут все дело в шляпе… Толковая статья. Коротко и в тему.


+ Comment by Ilya Rudomilov
Пятница, 20 июля 2007 @ 16:05

Рад, что статейка кому-то помогла.

Специально писал максимально коротко и просто. Многое не описано, но такой задачи и не ставилось. Хотел показать, как начать работать.

 
 

+ Comment by Alex
Четверг, 26 июля 2007 @ 21:16

Как создать учетные записи? Пользователю необходимо дать права только на 2 каталога. Напишите пожалуйста конкртно, т.е. как есть. В книгах все на английском ,ну а я не силен. СПАСИБО


+ Comment by Ilya Rudomilov
Четверг, 26 июля 2007 @ 22:14

К сожалению, мне кажется, что никак, т.к. суть SVN в раздаче прав на проекты, а не части проектов. Но я не сильно углублялся в администрирование.

 
 

+ Comment by Alex
Пятница, 27 июля 2007 @ 15:03

Во-первых, спасибо за ответ. Но теперь появился новый вопрос. Т.к. первый был неправильно сформулирован. На самом деле мне необходимо раздать права на проекты. Как это сделать я не знаю. Просто я пока не силен в администрировании:?) Если знаешь как это сделать напиши пожалуйста пошагово. очень нужно.

 

+ Comment by Alex
Пятница, 27 июля 2007 @ 15:09

For subvrsion 1.4

 

+ Comment by qik
Среда, 1 августа 2007 @ 02:07

Спасибо за статью

 

+ Comment by Иван Кузьмицкий
Пятница, 17 августа 2007 @ 17:29

Огромное спасибо за статью.
Идеальное руководство для быстрого старта, без него я долго бы собирался с духом (путаную документацию по SVN довольно тяжело читать, слишком уж “популяризировано”, много воды).

 
Среда, 22 августа 2007 @ 17:07

Есть вопрос: проект находится на удалённом компьютере. Сервер стоит на моём компьютере. Доступ на удалённый компьютер производится через http://ftp. Вопрос в следующем: как добавить папку с удалённого компьютера в мой репозитарий?
(открываю папку через эксплорер, пункта TortoiseSVN->Импортировать… во всплывающем меню нету.)

 

+ Comment by tt
Пятница, 14 сентября 2007 @ 19:44

как обновлять из репозитория только один файл?


+ Comment by Ilya Rudomilov
Пятница, 14 сентября 2007 @ 20:07

Тыкать и выбирать из списка лишь один файл, а не папку.

 
 

+ Comment by Tahion
Суббота, 6 октября 2007 @ 04:27

Поставил я себе SVN так, как описано выше. При этом он у меня работает ОЧЕНЬ медленно. Создание рабочей копии проекта может длится до получаса привсем при том, что сам проект относительно небольшой. При этом сама система грузится почти на 100%, что либо параллельно делать просто невозможно.

На работе SVN стоит на удаленном сервере, работает в разы быстрее. А это же на локальном компьютере, должно быть быстрее, а оно наоборот.

В чем моежт быть проблема?

 

+ Comment by olga
Вторник, 30 октября 2007 @ 23:59

Так и не получилось русифицировать: запускаю русификатор - пишет что выполнено успешно, а результата нет.

 

+ Comment by wadim
Среда, 16 апреля 2008 @ 22:42

поскажите пожалуста почему у меня логин и пароль не запрашивает?????

 

+ Comment by 0rsh
Четверг, 17 апреля 2008 @ 19:45

Error * D:\REPOSITORY\project\conf\svnserve.conf:2: Option expected
кто подскажет почему вылетает?
файл конфигурации
[general]
anon-access = read
auth-access = write
password-db = passwd

 

+ Comment by fade
Понедельник, 5 мая 2008 @ 23:28

А ты уверен что перед anon-access = read и далее нет пробелов?такое вылазит если поставить пробел в начале строки параметра

 

+ Comment by Zhenya
Вторник, 13 мая 2008 @ 03:30

Это называется “сложность настройки”? Блин! Я думал тут напишут, как собрать под виндой эту пакость из исходников! Про всякие perl/apache/ssl-привязки. Вот в этой части документация реально - черт ногу сломит. Не столько сложно, сколько нудно выуживать оттуда долбаные dependency-ссылки на всякие неоны, zlib’ы, apr’ы и нужные настройки. И всё это чтобы установить какой-то сраный скриптик на перле! Ну не задница ли?

 

+ Comment by virens
Пятница, 11 июля 2008 @ 03:38

Сборка под виндой Subversion… жестко у вас тут :-))

Если репозиторий локальный, то можно anon-access = read заменить на write - всё равно никто кроме вас этого делать не станет. У меня про это тоже был пост, жалко ваш поздно увидел.

И да, командная строка бывает удобной :-) При работе с Subversion это особенно заметно.

 

+ Comment by Sergey
Суббота, 16 августа 2008 @ 21:45

10x

 

+ Comment by webdes27
Суббота, 23 августа 2008 @ 22:55

Зделал всё по гайду!Создал папку проекта создалось всё.Раскоментировал в конфиге
anon-access = read
auth-access = write
password-db = passwd

Создал пользователя в файле пасворд прописал:
webdes27 = 261187

пытался слить в проект нефига не получается.Не конектит.
И запустить пытался уже через запрос:
svnserve.exe -d –listen-port 3690 -r c:/svn-store/my_project
и не фига!И 8082 порт ставил.Я в первый раз ставлю свн такого типа.Очень был бы благодарен если б подсказали в чём моя ошибка.

 

+ Comment by asker
Пятница, 3 октября 2008 @ 19:25

у кого получилось настроить чтобы сервер стартовал службой ?

у меня
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

не хочет стартовать, ругается типа служба не может быть запушена тк она не ответила вовремя. :(

 

+ Comment by VasiaVC
Понедельник, 6 октября 2008 @ 22:18

А я так с ним и не разобрался - как сделать так, что бы концы строк в линуксе и windows были разными, но в репозитарии лежали бы одинаково.

 

+ Comment by Michelin
Вторник, 7 октября 2008 @ 15:43

Кто-нибудь знает русскоязычный форум по этой программе, есть вопрос по ведению лога.

 

+ Comment by flying2000
Пятница, 16 января 2009 @ 12:35

У меня выдает такую ошибку - No repository found in ’svn://localhost/project’
С прописанным портом тоже самое…

 

+ Comment by flying2000
Понедельник, 19 января 2009 @ 14:52

Кто может подсказать или может у кого была подобная ошибка? Говорит, что по данному адресу хранилище не найдено?

 

+ Comment by SmivaL
Пятница, 23 января 2009 @ 19:15

при импорте в репозиторий пишет - невозможно подключиться к localhost, сервер не отвечает

 

+ Comment by Snowcore
Пятница, 6 февраля 2009 @ 22:02

Давно хотел себе SVN дома поставить, но не знал как :(

 

+ Comment by Gluttton
Вторник, 24 февраля 2009 @ 05:38

Без лишних слов - спасибо! Помогло!

 

+ Comment by lev
Среда, 25 марта 2009 @ 20:08

Поставил себе сабвершн 1.4.6 и глюк пропал!

 

+ Comment by lev
Среда, 25 марта 2009 @ 20:10

попробуй поставить версию сабвершн 1.4.6 мне это помогло

 

+ Comment by Аноним
Вторник, 7 апреля 2009 @ 03:36

 

+ Comment by vitaliy
Вторник, 26 мая 2009 @ 04:06

 

+ Comment by Валентин
Четверг, 28 мая 2009 @ 20:31

Хорошо написано. А это все на основе личного опыта?Позвольте поинтересоваться :)

 

+ Comment by Василий
Среда, 22 июля 2009 @ 18:04

Интересно, вы когда нибудь будете уточнять что данная статья про установку на Windows, а то как буд-то больше нет операционных систем. Пришлось читать почти пол-статьи зря :)

 

+ Comment by navcool
Вторник, 8 декабря 2009 @ 16:59

Спасибо за статью, вот еще статейку про хуки не мешало бы рядом написать!

 

+ Comment by Андрей
Вторник, 8 декабря 2009 @ 21:49

Творчество легендарного американского музыканта, певца, короля рок-н-ролла Элвис Пресли.
Вы можете ознакомиться с его биографией, фильмографией и дискографией. Большое собрание текстов песен, аккордов, нот guitar pro, караоке песен и множество фотографий Элвиса Пресли.

 

+ Comment by denzadnem
Понедельник, 22 февраля 2010 @ 01:10

Каждому Доброе утро! А вы не задумывались о том, что с помощью компьютера, даже не выходя из дому можно зарабатывать деньги? А при правильном подходе даже очень большие деньги! О том как этого добиться, вы узнаете посетив сайт ИНСТИНКТ.

 

+ Comment by Аноним
Четверг, 11 марта 2010 @ 20:46

 

+ Comment by Юрий
Суббота, 8 мая 2010 @ 22:58

Привет! У меня вопрос возник, конечно может не совсем к этой статье. Вот здесь описан способ использования 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 выводил сайт на экран, а не список фалов проекта.

Или может кто ссылкой поделится, где можно узнать про это.(конечно если так вообще можно сделать)

 

+ Comment by glarock-900a
Пятница, 21 мая 2010 @ 01:46

 

+ Comment by geese
Вторник, 25 мая 2010 @ 20:17

Спасибо. Именно данной инфы для начала у меня не хватало!

 

+ Comment by svetasvetit6Р
Четверг, 27 мая 2010 @ 01:30

Знакомства в интернете,реальные люди и бесплатная регистрация,способ найти себе партнера.

 

+ Comment by Виктор
Вторник, 1 июня 2010 @ 19:55

# Создаем папочку C:\svn-store\
# Заходим в консоль (Пуск->Выполнить, cmd)
Куда уж точнее?

 

+ Comment by Aleks
Среда, 14 июля 2010 @ 08:16

Не получилось настроить, чтобы был доступ по svn://localhost:8082/my_project/
Пишет :Can’t connect to host ‘localhost’: Подключение не установлено, т. к. конечный компьютер отверг запрос на подключение.

 

Or use your OpenID:

Поиск по сайту