2010-04-07 13 views
8

Il nostro team di sviluppo utilizza Eclipse + Aptana per svolgere il proprio lavoro di sviluppo web. Attualmente, molti di loro stanno mappando i loro progetti Eclipse direttamente sul server web. Preferirei che creassero un progetto locale e lo usassero per sincronizzarsi con la directory del progetto del server web su cui stanno lavorando.Soluzioni di sincronizzazione file Eclipse/Aptana

Il problema è che non ci sono buone soluzioni che sono semplicemente terribili data la popolarità dei due.

Il plug-in FileSync per Eclipse è solo a senso unico. Ciò significa che se un altro sviluppatore apporta una modifica al file sul server, un altro dev non viene nemmeno notificato e potrebbe sovrascrivere la modifica.

L'opzione di trasferimento file in Aptana 2.0 non supporta alcun tipo di sincronizzazione, solo caricando/scaricando manualmente i file.

L'opzione di sincronizzazione in Aptana 1.5.1 non consente di unire i file quando sono diversi. È possibile aggiornare solo uno o l'altro. Permette comunque di visualizzare una diff (ma solo se si fa clic con il tasto destro del mouse e si seleziona) e in tale diff non è possibile apportare alcuna modifica.

Ho trovato un modo per consentire il caricamento dei file nei repository Sync in Aptana utilizzando Eclipse Monkey. Tuttavia non funziona se un utente salva più file contemporaneamente, "Salva tutto", ancora non funziona. Inoltre, non vi è alcuna notifica se un utente apre un file locale che ha una copia aggiornata sul server. Ho provato ad aggiungerne uno usando Eclipse Monkey ma non sono riuscito a trovare alcun tipo di listener nell'API di Eclipse per farlo e qualsiasi documentazione di Eclipse Monkey è lontana e poca.

La mia unica soluzione a questo punto è solo per consentire loro di continuare a mappare direttamente sul server o chiedere loro di fare un download manuale prima che facciano qualsiasi lavoro (ma di nuovo cosa succede se qualcuno carica una modifica subito dopo averlo fatto) .

Qualcuno ha qualche idea?

risposta

4

aprile 2010

Aggiungere EGit alla configurazione Eclipse + Aptana, e:

  • consentono agli sviluppatori di spingere ad un local bare repo loro sviluppi (vedi anche this post)
  • lasciate che il vostro progetto locale sia aggiornato da uno git pull locale dallo stesso repository locale (creazione/aggiornamento) di una directory di lavoro locale con sorgenti unite/aggiornate (o utilizzando un hook post-aggiornamento come descritto in my previous SO link)
  • lasciare che il proprio Aptana + Eclipse (+ EGit) locale faccia riferimento alla directory di lavoro locale, utilizzata anche dal proprio server web.

In breve, quando si parla di sincronizzazione dei file + unioni, questo è un lavoro per un (D) VCS (Version Control System: Centralized o Distributed VCS)


ottobre 2011: come xmedeko menzioni in i commenti, Aptana3 hanno il proprio Git plugin.
E non è molto compatibile con EGit: vedere bug 1988.

+0

Aggiornamento: Aptana 3 ha il proprio plug-in Git. IMHO meglio di EGIT. – xmedeko

+0

@xmedeko: buon punto. Ho modificato la risposta per riflettere sul plugin git nativo. – VonC

1

Aggiungendo a VonC answer (che è corretto IMHO), ciò che probabilmente si trova sotto questo scenario è che il processo adottato non è corretto in sé, a parte gli strumenti utilizzati.

Se ho capito bene, non devi consentire né eseguire un caricamento diretto da una versione di sviluppo del progetto al server web. L'unione non è un lavoro per gli strumenti di sincronizzazione remota e dovrebbe avvenire molto prima della fase di distribuzione (il caricamento sul server Web è praticamente una distribuzione).

È necessario disporre di un repository dedicato preso da qualche punto nella cronologia dello sviluppo (in base alla cronologia di rilascio), un punto in cui l'unione è già avvenuta. Quindi distribuirlo (tramite la sincronizzazione dei file se si desidera, ma non è obbligatorio) su un server Web locale/di gestione temporanea.

Esegui qualsiasi test eseguito sul sito Web attivamente in esecuzione (cioè integrazione e/o test funzionali). Se c'è qualche bug nella correzione &, beh ci sono diversi modi per applicare effettivamente le correzioni sullo sviluppo & repository di codice di staging. Solo in seguito, si distribuisce il repository di staging sul server Web di produzione (di nuovo, gli strumenti di sincronizzazione sono un modo per farlo).