2010-04-07 3 views
8

Наша команда разработчиков использует Eclipse + Aptana для выполнения своих веб-разработок. В настоящее время большинство из них сопоставляют свои проекты Eclipse непосредственно на веб-сервере. Я предпочел бы, чтобы они создали локальный проект и использовали его для синхронизации с каталогом проектов веб-сервера, над которым они работают.Решения для синхронизации файлов Eclipse/Aptana

Проблема в том, что нет хороших решений, которые просто ужасают, учитывая популярность этих двух.

Плагин FileSync для Eclipse только в одну сторону. Если другой разработчик внесет изменения в файл на сервере, другой разработчик даже не будет уведомлен и может перезаписать это изменение.

Параметр «Передача файлов» в Aptana 2.0 не поддерживает никакой синхронизации, просто загружая/загружая файлы вручную.

Параметр Sync в Aptana 1.5.1 не позволяет объединять файлы, когда они разные. Вы можете обновлять только один или другой. Тем не менее, он позволяет просматривать diff (но только если вы щелкните правой кнопкой мыши и выберите), и в этом diff вы не можете вносить какие-либо изменения.

Я нашел способ разрешить загрузку файлов в свои репозитории Sync в Aptana с помощью Eclipse Monkey. Однако это не работает, если пользователь одновременно сохраняет несколько файлов, «Сохранить все», снова он не работает. Кроме того, нет уведомления, если пользователь открывает локальный файл с обновленной копией на сервере. Я попытался добавить один из них, используя Eclipse Monkey, но я не смог найти ни одного слушателя в Eclipse API, чтобы сделать это, и любая документация Eclipse Monkey далеко не так.

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

У кого-нибудь есть идеи?

ответ

4

апреля 2010

Добавить EGit вашей установки Eclipse, + Aptana, а также:

  • позволяют разработчикам толкать до local bare repo своих разработок (см также this post)
  • пусть ваш местный проект будет обновлено на git pull из того же локального голого репо (создания/обновления) локального рабочего каталога с источниками, объединенными/обновленными (или с помощью крюка после обновления, как описано в my previous SO link)
  • позвольте вашему местному Aptana + Eclipse (+ EGit) ссылаться на локальный рабочий каталог, также используемый вашим веб-сервером.

Короче говоря, когда вы говорите о синхронизации файлов + слияниях, это задание для (D) VCS (Version Control System: Centralized или Distributed VCS)


октября 2011: в xmedeko упоминается в комментарии, Aptana3 имеет свои Git plugin.
И это не очень совместимо с EGit: см. bug 1988.

+0

Обновление: у Aptana 3 есть собственный плагин Git. ИМХО лучше, чем EGit. – xmedeko

+0

@xmedeko: хорошая точка. Я отредактировал ответ, чтобы отразить этот родной плагин git. – VonC

1

. Добавляя к ответу VonC (что верно ИМХО), то, что, вероятно, лежит ниже этого сценария, заключается в том, что принятый вами процесс не является правильным сам по себе, кроме используемых инструментов.

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

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

Проведите там любой тест, который вы запускаете на веб-сайте, активно работающий (т. Е. Интеграция и/или функциональные тесты). Если есть ошибка &, то есть существуют различные способы применения исправлений при разработке & промежуточного репозитория кода. Только после этого вы размещаете промежуточный репозиторий на веб-сервере производства (опять же, инструменты синхронизации - это способ сделать это).

Смежные вопросы