Ежовый угол

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

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

Раздел: Без рубрики

Метки: , ,

66 комментариев

  1. Иван Кузьмицкий:

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

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

  3. tt:

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

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

  5. Tahion:

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

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

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

  6. olga:

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

  7. wadim:

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

  8. 0rsh:

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

  9. fade:

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

  10. Zhenya:

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

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

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

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

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

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

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

  13. asker:

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

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

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

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

  15. Michelin:

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

  16. flying2000:

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

  17. flying2000:

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

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

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

  20. Gluttton:

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

  21. lev:

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

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

  23. Василий:

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

    • Виктор:

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

  24. navcool:

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

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

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

  27. Юрий:

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

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

    • Nyima:

      Думаю надо сделать http://localhost/site рабочей папкой (этож реально какой-то каталог на твоем компе — если Денвер, то это Z:\home\localhost\www\site например, ну или его реальный путь без виртуального диска или реально папка сайта в дереве апача, если без денвера) и там всегда будет рабочая копия.. тоесть сделать там SVN Извлечь…

  28. geese:

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


Оставить комментарий

Спонсоры данной странички

Реклама

Статистика