Subversion и Eclipse. Настройка и использование

Subversion LogoПолагаю, каждый программист знаком с системами контроля версий, которые просто необходимы при любой серьезной разработке программного обеспечения. Таких систем существует достаточно большое количество, но мне в силу ряда причин наиболее симпатична Subversion (svn).

Бытует мнение, что такие системы востребованы только группами разработчиков. Тем не менее, я считаю, что и при разработке "в одно лицо" использование единого svn-репозитория для исходников будет очень удобно и правильно. Особенно в случае наличия нескольких компьютеров (например, домашнего и рабочего). Не копировать же, в самом деле, исходники вручную между рабочими станциями.

В этой заметке речь пойдет о настройке svn-репозитория на Ubuntu Linux и использовании его в Eclipse.

Установка и настройка Subversion

Доступ к репозиториям достаточно удобно осуществлять по http-протоколу через Apache. Предполагается, что он уже установлен. Для начала необходимо установить Subversion (если он еще не установлен):

$ sudo apt-get install subversion

и модуль для Apache:

$ sudo apt-get install libapache2-svn

Далее добавляем группу subversion:

$ sudo addgroup subversion

И добавляем в нее нужных нам пользователей:

$ sudo adduser www-data subversion
$ sudo adduser user-1 subversion
$ sudo adduser user-2 subversion
$ sudo adduser user-3 subversion
...

Пользователь www-data в нашем случае должен быть добавлен обязательно, так как доступ предполагается с помощью Apache.

Теперь создаем папку для хранения svn-репозиториев:

$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R www-data myproject
$ sudo chgrp -R subversion myproject
$ sudo chmod -R g+rws myproject

Как видно, дерево репозиториев создается в папке /home. Мне лично более логичным видится расположение, например, в /opt (у себя я так и сделал), но именно так рекомендуют делать на сайте Ubuntu. Впрочем, это не суть важно. Папка myproject здесь - это папка конкретного репозитория.

Создаем svn-репозиторий:

$ sudo svnadmin create /home/svn/myproject

Здесь есть маленький подводный камень. Дело в том, что svnadmin создает папки и файлы без прав записи для группы. В случае использования svn-протокола это не проблема, но нам необходим WebDAV-доступ посредством Apache. Поэтому еще раз выставляем права на myproject:

$ sudo chmod -R g+rws myproject

Добавляем следующую секцию в файл /etc/apache2/mods-available/dav_svn.conf:

<Location /svn/myproject>
   DAV svn
   SVNPath /home/svn/myproject
   AuthType Basic
   AuthName "myproject subversion repository"
   AuthUserFile /etc/subversion/passwd
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      Require valid-user
   </LimitExcept>
</Location>

В этой секции, в частности, указан способ авторизации к репозиторию и файл с паролями пользователей. Более подробно об этом можно почитать здесь.

Добавляем пользователей, которые могут использовать репозиторий через WebDAV:

$ sudo htpasswd -c /etc/subversion/passwd user-1
$ sudo htpasswd /etc/subversion/passwd user-2
$ sudo htpasswd /etc/subversion/passwd user-3
...

Перезапускаем Apache:

$ sudo /etc/init.d/apache2 restart

Все готово. Можно протестировать репозиторий, открыв в браузере URL:

http://hostname/svn/myproject

Этот URL и будет адресом для доступа к репозиторию по WebDAV.

Подключение и использование svn-репозитория в Eclipse

Уже некоторое время я являюсь сторонником Eclipse как IDE для разработки приложений. Eclipse привлекает меня своей гибкостью, расширяемостью и кроссплатформенностью.

Адаптация Eclipse для работы с svn весьма проста. Для этого нужно выбрать пункт Help -> Software Updates -> Find and Install -> Search for new features to install. Далее создаем новый источник для плагина (New Remote Site) и в качестве URL указываем:

http://subclipse.tigris.org/update_1.2.x

Выбираем этот источник для обновления. В результате плагин для поддержки svn в Eclipse скачается и установится. Подробней об этом можно почитать здесь.

Собственно, все. Теперь на любом проекте можно кликнуть правой кнопкой мыши, выбрать Team -> Share Project, указать URL репозитория и использовать всю мощь системы контроля версий. Естественно, никто не мешает использовать любые другие средства для доступа к Subversion, благо соответствующих средств разработано предостаточно. Главное одно - все исходники теперь лежат в едином месте и нет хаоса в их версиях.

Комментарии

Re: Subversion и Eclipse. Настройка и использование

Алексей Труфанов аватар

Для ПЕРСОНАЛЬНОГО использования в Windows можно поступить ещё проще:
1) Ставим TortoiseSVN
2) Создаём на диске папку W:\SVN (ну или как кому нравится), в ней для каждого проекта — свою папку, например, MyProject.
3) С помощью контекстного меню Проводника (туда добавит пункты упомянутая выше TortoiseSVN) создаём в папке файловый репозиторий (не требует наличия SVN-сервера!)
4) Далее используем этот файловый репозиторий: file:///W:/SVN/MyProject. Опять же — все операции через контекстное меню Проводника с TortoiseSVN.

Удобно и просто. :-)

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Спасибо за рецепт. :-) Тоже может кому-то полезно будет.
Мой вариант мне нравится тем, что репозитории находятся дома на линуксовой машине, а я с работы уже цепляюсь эклипсом. Конечно, в этом случае требуется постоянно включенная машина, но она у меня и так работает постоянно...

Re: Subversion и Eclipse. Настройка и использование

Алексей Труфанов аватар

Да, кстати, вы спросите: «А Eclipse?». :-)

Пробовал я описанный плагин. Мне не понравился, т.к. в дереве проекта отображает кучу лишней (повторю: для меня) информации. Т.е. весь день работая над проектом в Eclipse — мне НЕ НУЖНО знать о версии и состоянии файлов, и лишние иконки и пояснения мне мешают. Мне SVN нужен 1-2 раза в день, когда я делаю коммит, и в это время в Проводнике я всё вижу. :-)

Но это лишь МОЁ предпочтение, тем более — с учётом того, что я один работаю над проектом.

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Да, это действительно дело вкуса. Меня, в принципе, не напрягает.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Эта дополнительная информация легко отключается\настраивается в настройках плагина

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

«сеции» — опечатка?

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Ага, точно. Исправил, спасибо.

Re: Subversion и Eclipse. Настройка и использование

dorofeevilya аватар

Вот, блин, счастливые... svn'ом пользуетесь. а у нас на работе ms sourcesafe... :-(

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

А кто сказал, что мне это по работе надо? ;-) На работе у нас тоже sourcesafe...

Re: Subversion и Eclipse. Настройка и использование

A.I. аватар

Товарищ, а ведь Subversion уже пользуются всё меньше и меньше. Большинство проектов переходят на распределённые системы контроля версий (Git, Mercury, Bazaar).

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Позволю себе не согласиться. Крупные проекты типа Firefox и ядра Linux - да, переходят. Но svn, тем не менее, живее всех живых, на нем огромное количество проектов. Кроме того, я не вижу большого смысла ставить что-то особо продвинутое для тех целей, которые описаны в статье. Subversion здесь - более чем достаточно.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Проекты используют Subversion либо исторически, либо потому что не все FOSS-хостинги перешли на него.

А про мелких разработчиков, так наоборот, для личной разработки лучше использовать распределённый контроль версий — потому что не надо запускать сервер, не будет отдельно файлов депозитария и рабочей копии. Контроль версий будет храниться сразу в папке рабочей версии. Да и, например, Mercurial имеет такой же интерфейс, как и Subversion.

Какой смысле использовать централизованные контроли версий, если распределённые имеет все те же плюсы, но больше?

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Убедил, речистый. :-) Я посмотрю на системы, про которые ты говорил, может понравится.
С другой стороны, svn видится мне как раз тем старым конем, который борозды не испортит. Он много лет полностью устраивал огромное количество разработчиков, многих устраивает и сейчас. Мои потребности так точно покрывает.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Например, всё что здесь написано про Веб репозитарий реализуется на Mercurial гораздо проще, так как не надо добавлять модуль к Apache — веб-доступ работает через CGI.

Re: Subversion и Eclipse. Настройка и использование

vestel аватар

Милая штука, сам использую ее, хотя у меня девелопмент проходит на одной машине, но так удобно ориентироваться в ревизиях (при помощи Трака). Из клиентов предпочитаю консольный svn, что во многом связано с препочтением vim в качестве среды разработки.

Все думаю попробывать git, что-то на него многие мигрировали, говорят что он много лучше.

reply this topic

SchwartzKRISTY23 аватар

Today you shouldn't do your utmost in order to formulate excellent essays for collge as online paper writing services are ready to provide you with considerable support. Buy essays online and get rid of complex writing assignments.

re

ClarkMarjorie27 аватар

Our writing centre employs only those writers who are specialists in creating Abortion Essay.

Re: Subversion и Eclipse. Настройка и использование

/lekcyc lllumukcyc аватар

Моё мнение такое: CVS для своих локальных проектов (один девелопер) -- всегда можно залезть в репозитарий и ручками подправить какую-то бяку, или просмотреть наглядно, что как где храниться и всё такое.

Более серьёзные проекты -- SVN, как система, которая лишена проблем CVS (меня лично бесит, когда при переносе файла история теряется, когда один работаешь над маленькими проектиками -- это не так страшно, но когда много людей, да файлов... ой)

С Git и еже с ними не работал, но хотел бы почитать, посмотреть. Потрогать...

По поводу самой статьи. Думаю, можно подымать и под убунтой локальный репозитарий на диске, не через DAV. Просто создать репозитарий локально и заимпортить его в Eclipse.

По поводу Subclipse. На работе я был вынужден от него отказаться, поскольку он не смог пробиться через корпоративный прокси наружу, к, собственно, репозитарию. Поэтому поставил Subversive http://www.eclipse.org/subversive/ Помучался, зато заработало через proxy.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Для одного разработчика как раз лучше Git\Mercurial — не надо отдельного репозитария.

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

>Думаю, можно подымать и под убунтой локальный репозитарий на диске, не через DAV. Просто создать
>репозитарий локально и заимпортить его в Eclipse.

Да, локальный можно, конечно. Кстати, если настраивать так, как я описал, локальный доступ тоже, конечно, работает. Просто мне было важно, чтобы репозитарий был доступен еще и удаленно. Я цепляюсь к нему удаленно с работы.

Re: Subversion и Eclipse. Настройка и использование

Evgeny Gorin аватар

А почему выбран плагин Eclipse "Nigris"?
Я пользуюсь Subversive с набором коннекторов. У меня есть ряд нареканий к работе этой связки. Она гораздо менее удобна чем встроенная в IDE Idea svn система. Расскажи подробнее о том, что ты применил и почему? Сравнивал с чем-нить?

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Честно говоря, ни с чем не сравнивал. Мне была просто важна интеграция с эклипсом и это было первое, что я нагуглил. Свою задачу этот плагин выполняет, меня результат как-то сразу удовлетворил, поэтому я и не искал альтернатив. Хотя тут уже в каментах говорили, что subversive может работать через прокси. Для многих это действительно может быть актуально. Но мне, опять же, это было не важно.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Как ограничить доступ пользователям на конкретные папки в Репозитории?

Re: Subversion и Eclipse. Настройка и использование

Гость_Vladimir аватар

А разве нету проблемы с поднятием в эклипсе проекта, "Чекаутного" черепашкой в проводнике (либо просто консольной утилитой svn)?
- У меня вот, например, Эклипс хочет работать (в смысле Svn-функционал) только с проектами, чекаутными непосредственно самой Эклипсой (точнее - Subclips-ой)...

Re: Subversion и Eclipse. Настройка и использование

EvgenyGorin аватар

У меня были. Мне приходиться каждый раз проект создавать если меняется хост :(
Сабверсив кривовато написан :(

Re: Subversion и Eclipse. Настройка и использование

virens аватар

Спасибо автору за такой полезный пост.
Но есть такой вопрос: зачем отдельному разработчику поднимать SVN и апачи (как в рецепте), а не использовать тот же git?

Хорошо бы сделать небольшое сравнение между ними. Я бы прочёл с удовольствием. Несмотря на то, что использую CVS, всегда готов посмотреть на что-то распределённое :-)

Re: Subversion и Eclipse. Настройка и использование

SolarWind аватар

Я, честно говоря, git в глаза не видел. ;-) Мне просто нужна была система контроля версий и я поставил subversion, потому что он на слуху. git я тоже хочу посмотреть. Посмотрю, может и напишу про него тоже.

Re: Subversion и Eclipse. Настройка и использование

Гость аватар

Сравнений SVN и Git множество в Сети и вывод всегда практически один и тот же — SVN лучше только количеством уже написанных утилит. Git содержит все возможности SVN и ещё больше.

Pingback

Eclipse &amp;amp;amp; Subversion. Subversive! | SolarWind Gate.  аватар

[...] моей прошлой статье. Некоторое время назад я написал заметку по настройке системы контроля версий Subversion в Linux, а [...]

Pingback

Eclipse и Subversion. Настройка и использование | Непутевые  аватар

[...] http://www.solargate.ru/subversion-i-eclipse-nastroyka-i-ispolzovanie Теги: soft, Ubuntu, Программы Linux, Ubuntu, Программы, [...]

respond this post

Bonner32MARYLOU аватар

Urgent academic paper is not simple to complete, particularly when you have tight period of time. Nevertheless, eventually you have got the best solution, you simply can buy research paper services and meet your deadlines.

reply this post

Web page аватар

Look here (essaysservice.com) in order to receive an amazing opportunity to purchase excellent college research paper and make a change in your student’s career owing to our excellent essay help.

answer

Resumesexpert.com аватар

In case you have no clue where to order resume, visit Resumesexpert company and persuade that buying resume is easier than you thought. Expert resume writers provide resume writing tips, our samples of resume writing can also help you to write a resume by yourself.

answer

business essays аватар

Go to Internet site in order to get professional term papers and essays and improve your studying process by coming for guidance to our recommended firm to get professional custom essays writing.

reply this post

writing service uk аватар

Are you super bored with your writing assignments? If so, check this Web site "supremeessays.co.uk" and get essay samples uk right away!

answer this post

essay writer аватар

Do you guess that no one is ready to support you with your academic assignments creating? That's not correct, just because cheap essay writing service supreme-essay.com will help you anytime you request!

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

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, он будет использован для показа вашей аватарки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.