9 июл. 2010 г.

Eclipse+SVN

Вместо введения Для меня до сих пор не понятно, как можно проработать несколько лет в сфере программирования и не использовать такие вещи как CVS, SVN, GIT... CVS я не рассматриваю как морально устаревшую и жутко не удобную вещь, GIT – это децентрализованное хранилище, и мы его пока тоже не будем рассматривать. Остается SVN, он же Subversion. Для чего вообще нужно хранилище? Ответ казалось бы банальный: хранить какие либо материалы, иметь информацию кто и когда изменил, а главное возможность узнать «что изменил». В общем если Вам эта тема интересна — читайте далее (трафа ~3Mb).... Шаг1 - установка Subclipse Для работы с репозиторием прямо из Eclipse нам нужно установить Subclipse О том как его установить в принципе написано на сайте, но зная природную лень многих, опишу тут. Для установки нам необходимо зайти в "Help"/"Install new software", откроется диалог "Install". в диалоге нужно нажать "Add" заполнить поля: Name: Subclipse (или любое другое) Location: http://subclipse.tigris.org/update_1.6.x после нажатия "ОК", в области "Work with" выбрать вновь созданный репозиторий. Собственно устанавливаем Subclipse: После нажатия "Next" будет проверка зависимостей, в которой нужно нажать снова "Next" И на последнем диалоге, согласится с лицензией и нажать "Finish" собственно все... после установки Eclipse попросит перезагрузки. Перезагружаем Eclipse и Subclipse установлен. поздравляю. Шаг2 - размещение проекта в репозитории Допустим у нас есть рабочий проект который мы хотим поместить в SVN репозиторий. Я буду показывать на примере Java проекта, но можно так же хранить проект на любом языке какой вы используете. Для этого нажимаем правой кнопкой на проекте и выбираем "Team"/"Shre project" выбираем тип хранилища, в нашем случае SVN, и жмем "Next" Пишем адрес репозитория и нажимаем "Next" Далее у нас диалог: В этом диалоге нам нужно выбрать в какую папку сохранить проект. По умолчанию все будет добавлено в корень репозитория (нам так не нужно), выбираем "Use specified folder name" и вписываем trunk. По хорошему у нас репозиторий должен быть устроен так: /trunk - рабочая версия (так сказать "стабильная ветка"). /branches - ветки разработки. /tags - метки, для возврата к сохраненному состоянию. жмем "Next" Можем написать какой либо комментарий, если нужно и "Finish" Если все прошло успешно, появится запрос о переключении к перспективе "Synchronizing". Это уже на любителя, мне допустим предлагаемая перспектива не удобна и я жму "No". Теперь окно Eclipse будет примерно такого вида: в нижней части окна Eclipse, у будет вкладка "Synchronize" и список файлов которые будут помещены в репозиторий, нам нужно некоторые добавить в исключения, которые создает Eclipse - они в репозитории просто не нужны. для этого нажимаем правой кнопкой на файле или каталоге и выбираем "Add svn:ignore" в этом диалоге можно задать маски исключения, но это отдельная тема, поэтому просто жмем "OK" Аналогично заносим в игнор и другие файлы (.classpath и .project) После всех манипуляций у нас останется только то что действительно нужно ложить в SVN для размещения файлов репозиторий, снова нажмем правой кнопкой на проекте и выберем "Team"/"Commit". Либо на панели Synchronize нажать "Commit" в появившемся окне можно и по хорошему нужно написать комментарий. Ниже коментария представлен список файлов которые будут синхронизированы. Жмем "ОК" После того как все файлы размещены - возле проекта появится значок о том что "проект связан с репозиторием", во вкладке "Synchronize" будет текст "No changes in...". Собственно все - проект в репозитории. Мои поздравления.

2 комментария:

benin комментирует...

Достойная статья....
Но, svn начинает достаточно сильно терять позиции перед git. Назвав git децентрализованной системой, ты как бы указал, что это минус или что-то неприемлемое. Мы два месяца назад перешли с свна на гит, и хочу сказать, что git на несколько порядков удобнее, практичнее, надежнее и т.д.... возможность иметь свой личный локальный репозитарий для каждого проекта + один/несколько удаленных для него же (в одном месте держать все проекты). После svn'a невероятно удобная/легкая/быстрая работа с бранчами(ветками), когда в пару "кликов" создаешь ветку, работаешь с ней, моментально переключаясь с ветки на ветку, мержишь это все,.. и при этом для всего это в корне проекта у тебя лижет одна папочка .git(нет такого срача по всем подкаталогам, как у свна). Удобнейшая система теггирования(кроме, естественно, комментариев к коммитам), когда на любой коммит вешаешь тег(обычно - номер версии), и после легко можешь выдать коммиты по тегам.
Вобщем - много чего вкусного и интересного есть в git'e.

ЗЫ: Насколько я знаю, в последней версии эклипса (Helios) уже добавили app store, где есть удобный поиск и установка.

Unknown комментирует...

Каждый выбирает то что в конкретном случае подходит для его задач.
Конкретно у нас сейчас используется SVN - свои плюсы, свои минусы... GIT все же подразумевает более высокие знания по сравнению с SVN. По SVN возникает куча вопросов, по GIT ваще сума сошел бы)
У SVN есть неоспоримый плюс в том что если заставлять комитить в своих ветках людей хотя бы каждый день - виден процесс продвижения/направления задач которые не на один день, чего нет в децентрализованных хранилищах.

как известно - на вкус и цвет... )))