Subversion и Eclipse. Настройка и использование
Полагаю, каждый программист знаком с системами контроля версий, которые просто необходимы при любой серьезной разработке программного обеспечения. Таких систем существует достаточно большое количество, но мне в силу ряда причин наиболее симпатична 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. Настройка и использование
Спасибо за рецепт. :-) Тоже может кому-то полезно будет.
Мой вариант мне нравится тем, что репозитории находятся дома на линуксовой машине, а я с работы уже цепляюсь эклипсом. Конечно, в этом случае требуется постоянно включенная машина, но она у меня и так работает постоянно...
Re: Subversion и Eclipse. Настройка и использование
Да, кстати, вы спросите: «А Eclipse?». :-)
Пробовал я описанный плагин. Мне не понравился, т.к. в дереве проекта отображает кучу лишней (повторю: для меня) информации. Т.е. весь день работая над проектом в Eclipse — мне НЕ НУЖНО знать о версии и состоянии файлов, и лишние иконки и пояснения мне мешают. Мне SVN нужен 1-2 раза в день, когда я делаю коммит, и в это время в Проводнике я всё вижу. :-)
Но это лишь МОЁ предпочтение, тем более — с учётом того, что я один работаю над проектом.
Re: Subversion и Eclipse. Настройка и использование
Да, это действительно дело вкуса. Меня, в принципе, не напрягает.
Re: Subversion и Eclipse. Настройка и использование
Эта дополнительная информация легко отключается\настраивается в настройках плагина
Re: Subversion и Eclipse. Настройка и использование
«сеции» — опечатка?
Re: Subversion и Eclipse. Настройка и использование
Ага, точно. Исправил, спасибо.
Re: Subversion и Eclipse. Настройка и использование
Вот, блин, счастливые... svn'ом пользуетесь. а у нас на работе ms sourcesafe... :-(
Re: Subversion и Eclipse. Настройка и использование
А кто сказал, что мне это по работе надо? ;-) На работе у нас тоже sourcesafe...
Re: Subversion и Eclipse. Настройка и использование
Товарищ, а ведь Subversion уже пользуются всё меньше и меньше. Большинство проектов переходят на распределённые системы контроля версий (Git, Mercury, Bazaar).
Re: Subversion и Eclipse. Настройка и использование
Позволю себе не согласиться. Крупные проекты типа Firefox и ядра Linux - да, переходят. Но svn, тем не менее, живее всех живых, на нем огромное количество проектов. Кроме того, я не вижу большого смысла ставить что-то особо продвинутое для тех целей, которые описаны в статье. Subversion здесь - более чем достаточно.
Re: Subversion и Eclipse. Настройка и использование
Проекты используют Subversion либо исторически, либо потому что не все FOSS-хостинги перешли на него.
А про мелких разработчиков, так наоборот, для личной разработки лучше использовать распределённый контроль версий — потому что не надо запускать сервер, не будет отдельно файлов депозитария и рабочей копии. Контроль версий будет храниться сразу в папке рабочей версии. Да и, например, Mercurial имеет такой же интерфейс, как и Subversion.
Какой смысле использовать централизованные контроли версий, если распределённые имеет все те же плюсы, но больше?
Re: Subversion и Eclipse. Настройка и использование
Убедил, речистый. :-) Я посмотрю на системы, про которые ты говорил, может понравится.
С другой стороны, svn видится мне как раз тем старым конем, который борозды не испортит. Он много лет полностью устраивал огромное количество разработчиков, многих устраивает и сейчас. Мои потребности так точно покрывает.
Re: Subversion и Eclipse. Настройка и использование
Например, всё что здесь написано про Веб репозитарий реализуется на Mercurial гораздо проще, так как не надо добавлять модуль к Apache — веб-доступ работает через CGI.
Re: Subversion и Eclipse. Настройка и использование
Милая штука, сам использую ее, хотя у меня девелопмент проходит на одной машине, но так удобно ориентироваться в ревизиях (при помощи Трака). Из клиентов предпочитаю консольный svn, что во многом связано с препочтением vim в качестве среды разработки.
Все думаю попробывать git, что-то на него многие мигрировали, говорят что он много лучше.
Re: Subversion и Eclipse. Настройка и использование
Моё мнение такое: CVS для своих локальных проектов (один девелопер) -- всегда можно залезть в репозитарий и ручками подправить какую-то бяку, или просмотреть наглядно, что как где храниться и всё такое.
Более серьёзные проекты -- SVN, как система, которая лишена проблем CVS (меня лично бесит, когда при переносе файла история теряется, когда один работаешь над маленькими проектиками -- это не так страшно, но когда много людей, да файлов... ой)
С Git и еже с ними не работал, но хотел бы почитать, посмотреть. Потрогать...
По поводу самой статьи. Думаю, можно подымать и под убунтой локальный репозитарий на диске, не через DAV. Просто создать репозитарий локально и заимпортить его в Eclipse.
По поводу Subclipse. На работе я был вынужден от него отказаться, поскольку он не смог пробиться через корпоративный прокси наружу, к, собственно, репозитарию. Поэтому поставил Subversive http://www.eclipse.org/subversive/ Помучался, зато заработало через proxy.
Re: Subversion и Eclipse. Настройка и использование
Для одного разработчика как раз лучше Git\Mercurial — не надо отдельного репозитария.
Re: Subversion и Eclipse. Настройка и использование
>Думаю, можно подымать и под убунтой локальный репозитарий на диске, не через DAV. Просто создать
>репозитарий локально и заимпортить его в Eclipse.
Да, локальный можно, конечно. Кстати, если настраивать так, как я описал, локальный доступ тоже, конечно, работает. Просто мне было важно, чтобы репозитарий был доступен еще и удаленно. Я цепляюсь к нему удаленно с работы.
Re: Subversion и Eclipse. Настройка и использование
А почему выбран плагин Eclipse "Nigris"?
Я пользуюсь Subversive с набором коннекторов. У меня есть ряд нареканий к работе этой связки. Она гораздо менее удобна чем встроенная в IDE Idea svn система. Расскажи подробнее о том, что ты применил и почему? Сравнивал с чем-нить?
Re: Subversion и Eclipse. Настройка и использование
Честно говоря, ни с чем не сравнивал. Мне была просто важна интеграция с эклипсом и это было первое, что я нагуглил. Свою задачу этот плагин выполняет, меня результат как-то сразу удовлетворил, поэтому я и не искал альтернатив. Хотя тут уже в каментах говорили, что subversive может работать через прокси. Для многих это действительно может быть актуально. Но мне, опять же, это было не важно.
Re: Subversion и Eclipse. Настройка и использование
Как ограничить доступ пользователям на конкретные папки в Репозитории?
Re: Subversion и Eclipse. Настройка и использование
А разве нету проблемы с поднятием в эклипсе проекта, "Чекаутного" черепашкой в проводнике (либо просто консольной утилитой svn)?
- У меня вот, например, Эклипс хочет работать (в смысле Svn-функционал) только с проектами, чекаутными непосредственно самой Эклипсой (точнее - Subclips-ой)...
Re: Subversion и Eclipse. Настройка и использование
У меня были. Мне приходиться каждый раз проект создавать если меняется хост :(
Сабверсив кривовато написан :(
Re: Subversion и Eclipse. Настройка и использование
Спасибо автору за такой полезный пост.
Но есть такой вопрос: зачем отдельному разработчику поднимать SVN и апачи (как в рецепте), а не использовать тот же git?
Хорошо бы сделать небольшое сравнение между ними. Я бы прочёл с удовольствием. Несмотря на то, что использую CVS, всегда готов посмотреть на что-то распределённое :-)
Re: Subversion и Eclipse. Настройка и использование
Я, честно говоря, git в глаза не видел. ;-) Мне просто нужна была система контроля версий и я поставил subversion, потому что он на слуху. git я тоже хочу посмотреть. Посмотрю, может и напишу про него тоже.
Re: Subversion и Eclipse. Настройка и использование
Сравнений SVN и Git множество в Сети и вывод всегда практически один и тот же — SVN лучше только количеством уже написанных утилит. Git содержит все возможности SVN и ещё больше.
Pingback
[...] моей прошлой статье. Некоторое время назад я написал заметку по настройке системы контроля версий Subversion в Linux, а [...]
Pingback
[...] http://www.solargate.ru/subversion-i-eclipse-nastroyka-i-ispolzovanie Теги: soft, Ubuntu, Программы Linux, Ubuntu, Программы, [...]
Pingback
[...] Источник: http://www.solargate.ru/subversion-i-eclipse-nastroyka-i-ispolzovanie [...]
Отправить комментарий