Хочется высказать небольшое «фи» в сторону Aptana Studio. Сам долгое время ей пользовался в основном из-за возможности синхронизации файлов с удалённым сервером. Но со временем стали раздражать, казавшиеся в начале незначительными, мелочи. Вроде невозможности выполнять синхронизацию в фоне, невозможности понять какие файлы изменились, без выполнения полной синхронизации, частичного сравнения выбранных директорий.
После долгих поисков и проб установил FTP and WebDAV support. Поиски были долгими, потому что долгими, потому что на официальном сайте на эту поддержку, похоже, забили. Нашёл здесь: www.jcraft.com/eclipse-sftp/ Там же нашёл плагин для синхронизации по SFTP.
Я тоже использую SVN, но это совершенно другой инструмент для других целей. С помощью SVN ведётся разработка сайта, внесение изменений в тестовую версию. Но ведь надо потом эти изменения перенести на боевой сайт. И вот тут самое место для использования FTP и SFTP синхронизации.
А, почему бы не воспользоваться, так называемыми хуками (hooks)? Например, иметь отдельную branch для разработки и тестирования, а при комите в trunk вызывать этот самый hook, который и заливал бы файлы по ФТП на ваш боевой сайт?
Причём, настроить и дописать этот хук можно таким образом, что если соединения по ФТП не произошло, то и репозиторий не обновился (на всякий случай), а если произошло, то заливаются зменённые файлы и потом обновляется репозиторий? :)
На одном из тестовых серверов у нас так и сделано. Правда для CVS. Но такой способ
а) привязывает к репозитарию;
б) лишает гибкости;
в) завязывает разработчика на администратора репозитария
Как всегда, всё зависит от решаемых конкретным человеком конркетных задач. Если работа ведётся над одним-двумя проектами в течении долгого времени, возможно и удобнее один раз сделать все эти связи и больше не мучится.
Но когда работа ведётся над десятком проектов, и этот десяток меняется каждые месяц-два, то такой подход будет скорее тормозить процесс чем способствовать его продвижению.
Не все файлы хранятся в репозитарии. Не всегда после коммита надо обновлять клиентский сайт.
Покажите пример, когда не все файлы хранятся в репозитарии.
Да обновлять после коммита, не всегда нужно, но вас никто и не принуждает)
Ну в общем использование контроля версий это дело вкуса, и как на меня оно имеет больше преимуществ, чем недостатков,
хотя порою и приносит заморочки.
З.Ы. Файл можно еще синхронизировать с помощью rsync)
> Покажите пример, когда не все файлы хранятся в репозитарии.
Как правило это файлы данных и конфигурационные файлы (с явками, паролями и т. д.). В репозитарий идёт конфигурация разработчика или тестового сервера. Да, я читал статью про то, как хранить разные конфигурации в SVN. Но, повторюсь, а зачем, если есть более простые способы?
Хочу внести немного ясности. Я не против SVN, я против использования SVN для всего и вся.
Каждой задаче — свой инструмент. Я считаю так.
Версионирование и совместаня разработка? — SVN
Синхронизация с хостингом? — FTP или SFTP
Попить кофе? — даже если бы Eclipse умел варить кофе (о чём писали ниже), я всё же выбрал бы кофеварку :-)
Во всяком случае с SVN + FTP у меня больше возможностей и меньше ограничений чем только с SVN. Да и вообще проще работать. А если проще работать, значит я больше времени и внимания могу уделить непосредственно работе. Именно это, в конечном счёте, и надо. Не так ли?
Да, это проблема, я по совету от Postgres-гуру пробовал apgdiff.sourceforge.net/, но как то оно неочень помогло решить проблему поддержки N систем и синхронизации схем. Вывод у него плохо читаемый, да и выполнится полученый скрипт не захотел :( Не исключено, что я его просто неправильно готовил, може у вас получится.
Я прошу прощения, но можно ещё патчи на дискетках по бумажной почте передавать :-) Но только зачем? Если есть удобная и простая возможность синхронизировать удалённые файлы с рабочей копией точно так же как и с репозитарием? Или просто нет таких преград, которые мы не могли бы перед собою поставить? :-)
Для загрузки кода на удалённое тестовое окружение лучше использовать Target Management (видео-урок по TM и Xdebug — vimeo.com/1210740). А для синхронизации (слияний) с кодом других разработчиков хорошо испольвовать SVN, для работы с ней в Eclipse есть плагин Subclipse (http://subclipse.tigris.org/).
TM пробовал, вещь хорошая, но не совсем то, что нужно мне. Да, он позволяет работать с удалёнными системами, но не так удобно (для моих целей), как FTP и SFTP синхронизация, которая использует для этого Synchronization View (как и SVN). Собственно про SVN см. выше: habrahabr.ru/blogs/eclipse/40785/#comment_992908
Тем, что String при изменении плодит каждый раз новую строку в пуле строк, а StringBuffer этого не делает, но он синхронизирован со всех сторон.
В 1.5 повился StringBuilder, который полностью повторяет функционал StringBuffer, но он уже, не синхронизированный.
Так что при обильной работе со строками надо использовать StringBuilder, а если речь заходит о защите данных в многопоточном блоке кода, то тогда надо юзать StringBuffer.
ИМХО, сомнительная фича :)
Я так и не понял, что значит «Неоптимальный код».
Я не думаю, что PWD проверяет неоптимальность билдера по сравнению с буффером, т.к. обе класса могут спокойно использоваться и не PWD решать, должен быть этот объект синхронизированным или нет.
Неоптимальность использования Стринга по сравнению с SB (и билдером, и буффером) он может проверять
Вы .class-файлы декомпилировали когда-нибудь?
Там все вхождения string1+string2+… компилятором автоматически заменяются на new StringBuilder().add(string1).add(string2)… toString();
если target=1.6 и 1.5.
И на new StringBuffer..., если target=1.4
вообще-то хитрости лучше начинать с самого Eclipse, ибо их там хватает без всяких сторонних плагинов.
рекомендую заглянуть в соответствующий раздел помощи и сделать перевод, если так неймется что-то про эклипс написать
«при работе с Eclipse»
Допишите, пожалуйста, что топик касается только Java. Ибо я на Eclipse работаю с С/С++ и Perl и эти расширения мне однозначно не нужны :) (разве что Aptana универсальна).
Либо же включите разнообразные плагины, а то все java да java. :)
Спасите помогите. Ищу кросплатформенную среду для C++. СИльно нравится eclipse CDT, но бесит один глюк — не удаётся удалить из проекта ненужные фалы. Например у меня есть проект, в папках которого есть всякого рода файлы, которые не должны отображаться в дереве файлов проекта. Все попытки удалить их из eclipse кончились полным крахом. «Exclude from make» не работает. Ручное прописывание фильтров тоже не работает — что делать?!!!
Извольте.
Eclipse используется для разработки web приложений.
На работе от лицензии на Zend отказался в пользу PDT. Дистрибутив беру на zend.com/pdt — с интегрированным дебагером. Из расширений:
Aptana — редко и только для работы по FTP. HTML, XML и CSS редакторы, на мой взгляд, прекрасны и в штатном WTP.
Для JavaScript — JSEclipse (http://labs.adobe.com/technologies/jseclipse/)
QuickREx для регулярных выражений.
Subclipse для синхронизации с SVN репозитарием.
PHPDocumentor (для создания документации) и SimpleTest (аналог UnitTest) использую по большим праздникам.
Mylyn стоит, но не используется, т.к. не прижился багтрекер.
И, право слово, такой список с незначительными изменениями будет у любого веб разработчика — этой функциональности хватает с избытком.
Вопрос к вам лично: зачем вам Aptana? Что в ней есть такого, чего не хватает в Zend for Eclipse?
Спасибо за комент. Aptana ради Javascript. Форматер, валидатор там лучше чем в стандартном, imho, + XML, CSS + средства поиска лучше чем стандартные. Но с Вашей подачи попробую JSEclipse.
SVN, PHPDocumentor есть в зенде
QuickREx да, забыл написать, просто потому что почти его не юзаю
Сейчас вот ставлю PMD… Чесно говоря страшно представить, какое количество мертвого кода/дублируемости и не оптимальности он мне выдаст для старючего проекта в 2000+ файлов кода, написанного с десятком различных людей…
Как бы этот плагин не совершил суицид…
Ээээ… хабр сожрал коммент. Я хотел сказать, что стоит посмотреть в сторону GWT Designer. Умеет создавать модуль, деплоить и ещё много чего. Ну и морду рисовать им можно. ;)
Конкретно не вспомню уже. Да и так уже привык. Вы знаете, страдает все теми же недостатками, что все визуальные дизайнеры форм. Это даже в последнем подкасте The art of programming (http://taop.rpod.ru/78122.html) говорили.
Во всяком случае, попробую глянуть, может что и изменилось
Люди, может кто подскажет…
Как настроить eclipse на «Открыть с помощью...» и можно ли?
Эклипсом пользуюсь уже долго, всем нравится, но вот этой возможности не хватает :)
Потому, что имелось ввиду, что если вы кликаете на файл и выбираете «Открыть с помощью...» Eclips, то запускается сам Eclips, но выбранный файл не открывается ни в одном из, настроенных на этот тип файлов, редакторах.
О, и у меня еще много вопросов про Eclipse!
Как навесить hot-key на action «Extract Constant»?
Есть ли хоткей, чтобы перейти к следующей ошибке в файле?
Есть ли возможность перейти в конкретную имплементацию метода в подклассе, если находишься в интерфейсе?
Как удалить плагин, который не понравился?
Можно ли две кнопки «Open file» и «Open folder» заменить на «Open»? Это когда хочешь подключить исходники и не знаешь они в зипе лежат или в отдельной папке. И если не угадал, приходится весь путь сначала проходить другой кнопкой.
И наконец можно ли убрать эту гадость?
Спасибо.
1. PDT для php-разработки
2. JSEclipse для javascript
3. QuickREx для регулярных выражений
4. Subclipse для работы с SVN репозиторием
5. RSE (Remote System Explorer) для SSH, FTP, local drives
6. Eclipse Instant Messenger Plugin (ICQ)
7. Orfeus player (muzic)
8. Eclipse-games (играю)
Жаль, Eclipse кофе не готовит.
В удовольствие — кроме Eclipse и Opera для разработки ничего другого вообще не запускаю. Если запускаю — уже рутина.
Подскажите, как в PDT сделать автодополнение php-кода сразу, без нажатия ctrl+space?
И как поставить PDT на Eclipe 3.4? Через downloads.zend.com/pdt он не ставится, а на zend.com сборка «все в одном» с Eclipse 3.3.
Никто не знает какой-нибудь чудо плагин для автоматического определения кодировок файла (у нас проекты разных времён могут быть cp1251 или utf-8, и пока всем сразу перейти на utf-8 не получается :(( )? Или хотя бы как-нибудь настроить, что бы текущая кодировка выводилась в строке состояния.
На форуме aptana когда-то поднимался такой вопрос — разработчики сказали что подумаю, но пока что-то не особо…
Eclipse Tips #1