2010-04-07 13 views
8

Unser Entwicklungsteam verwendet Eclipse + Aptana für ihre Web-Entwicklungsarbeit. Momentan mappen die meisten ihre Eclipse-Projekte direkt auf den Webserver. Ich würde es lieber, wenn sie ein lokales Projekt erstellen und dieses zum Synchronisieren mit dem Webserver-Projektverzeichnis verwenden, an dem sie arbeiten.Eclipse/Aptana Datei-Sync-Lösungen

Das Problem ist, dass es keine guten Lösungen gibt, die angesichts der Popularität der beiden einfach entsetzlich sind.

Das FileSync-Plugin für Eclipse ist nur in eine Richtung. Das bedeutet, wenn ein anderer Entwickler eine Änderung an der Datei auf dem Server vornimmt, wird ein anderer Entwickler nicht einmal benachrichtigt und könnte die Änderung überschreiben.

Die Dateiübertragungsoption in Aptana 2.0 unterstützt keine Art von Synchronisierung, nur das manuelle Hochladen/Herunterladen von Dateien.

Die Sync-Option in Aptana 1.5.1 ermöglicht es Ihnen nicht, Dateien zusammenzuführen, wenn sie unterschiedlich sind. Sie können nur das eine oder das andere aktualisieren. Es erlaubt Ihnen jedoch, ein diff zu sehen (aber nur wenn Sie mit der rechten Maustaste klicken und auswählen) und in diesem diff können Sie keine Änderungen vornehmen.

Ich habe einen Weg gefunden, Dateien mit Eclipse Monkey in ihre Sync-Repositories in Aptana hochladen zu können. Es funktioniert jedoch nicht, wenn ein Benutzer mehrere Dateien auf einmal speichert, "Alles speichern", wieder funktioniert es nicht. Darüber hinaus gibt es keine Benachrichtigung, wenn ein Benutzer eine lokale Datei mit einer aktualisierten Kopie auf dem Server öffnet. Ich habe versucht, einen mit Eclipse Monkey hinzuzufügen, aber ich konnte keine Art von Listener in der Eclipse-API finden, um es zu tun, und jede Eclipse Monkey-Dokumentation ist weit und wenig dazwischen.

Meine einzige Lösung an diesem Punkt ist nur, dass sie weiterhin direkt auf den Server mappen oder sie bitten, einen manuellen Download durchzuführen, bevor sie irgendeine Arbeit machen (aber wieder was, wenn jemand eine Änderung direkt danach hochlädt) .

Wer hat irgendwelche Ideen?

Antwort

4

April 2010

hinzufügen EGit zu Eclipse + Aptana Setup und:

  • können Entwickler auf eine local bare repo ihre Entwicklungen schieben (siehe this post auch)
  • Ihr lokales Projekt lassen aktualisiert von einem git pull aus demselben lokalen bare Repo (Erstellen/Aktualisieren) eines lokalen Arbeitsverzeichnisses mit zusammengeführten/aktualisierten Quellen (oder mit einem Post-Update-Hook wie inbeschrieben))
  • lassen Sie Ihr lokales Aptana + Eclipse (+ EGit) auf dieses lokale Arbeitsverzeichnis verweisen, das auch von Ihrem Webserver verwendet wird.

Kurz gesagt, wenn Sie von Datei-Synchronisation + verschmilzt sprechen, dann ist dies eine Aufgabe für einen (D) VCS (Version Control System: Centralized oder Distributed VCS)


Oktober 2011: als xmedeko erwähnt in die Kommentare, Aptana3 hat seine eigene Git plugin.
Und es ist nicht sehr kompatibel mit EGit: Siehe bug 1988.

+0

Update: Aptana 3 hat ein eigenes Git-Plugin. IMHO besser als EGit. – xmedeko

+0

@xmedeko: guter Punkt. Ich habe die Antwort bearbeitet, um dieses native Git-Plugin zu reflektieren. – VonC

1

Hinzufügen zu VonC Antwort (was richtig IMHO ist), was wahrscheinlich liegt unter diesem Szenario ist, dass die Prozess Sie adoptiert ist in sich selbst, abgesehen von den verwendeten Tools nicht korrekt.

Wenn ich es gut verstehe, sollten Sie keinen direkten Upload von einer Entwicklungsversion des Projekts auf den Webserver erlauben oder durchführen. Das Zusammenführen ist kein Job für Remotesynchronisierungstools und sollte weit vor der Bereitstellungsphase erfolgen (das Hochladen auf den Webserver ist praktisch eine Bereitstellung).

Sie sollten ein dediziertes Repository von einem Punkt in der Entwicklungshistorie haben (abhängig von Ihrer Veröffentlichungszeitleiste), einem Punkt, an dem die Zusammenführung bereits stattgefunden hat. Dann stellen Sie es (mittels Dateisynchronisation, wenn Sie wollen, aber das ist nicht obligatorisch) auf einem lokalen/Staging-Webserver bereit.

Führen Sie dort jeden Test durch, den Sie auf der Website aktiv ausführen (d. H. Integrations- und/oder Funktionstests). Wenn es einen Fehler gibt & beheben, gibt es verschiedene Möglichkeiten, die Fixes auf die Entwicklung & Staging-Code-Repository tatsächlich anzuwenden. Erst danach stellen Sie das Staging-Repository auf dem Produktions-Webserver bereit (auch hierfür sind Synchronisierungstools eine Möglichkeit).