2008-12-28 8 views
6

Lavoro in un piccolo studio di sviluppo LAMP in cui l'idea è stata quella di ottenere il codice e passare alla voce successiva nell'elenco.Conversione di un team di sviluppo da FTP a un sistema di controllo delle versioni

Il team lavora in Zend Studio 5.5 collegato al server Live tramite FTP o SFTP. Ciò che amano di questo è la velocità della loro implementazione del codice (dal momento che modifica semplicemente il codice live).

Ma ovviamente questo non va bene a causa di molte ovvie ragioni.

Vorrei spostarli su un sistema di controllo delle versioni (CVS, SVN o qualsiasi altro strumento) ma il problema è che non sono più anziano quindi ho bisogno di una carota per iniziare a utilizzarlo.

Che tipo di installazione avrei bisogno di costruire sulla loro macchina in modo che possano programmare come al solito?

Quello che vorrei fare è creare questa configurazione sulla mia macchina e quindi mostrarli.

So che questo è un pò inusuale, ma è trasformato in una mia passione di cambiare il loro modo di pensare dal solito hacking del codice per struttura ed eleganza. Grazie.

UPDATE (la risposta di Jonathan Leffler):

  1. No
  2. Sì, fanno davvero

domanda anche, lo studio fa un sistema CMS centralizzato che è ospitato su centinaia di siti, è necessario modificare i singoli siti, nel caso in cui i siti si trovino nel compositore principale o all'interno del proprio sito?

+0

È la risposta a Q1 "Sì, non hanno mai avuto un disastro"? O è "Sì, hanno avuto disastri dove non potevano tornare"? Scusa, la domanda è ambigua. –

+0

La risposta alla domanda "più siti nel repository principale" è "dipende". Ma sarei estremamente a disagio con un sistema in cui gli sviluppatori non disponevano di un buon VCS per il sito * my * e il mio CMS. Deve essere sotto VCS. –

+0

La risposta è sì hanno avuto disastri. –

risposta

7

Domande:

  1. Hai (essi) non ha mai avuto un disastro in cui è (sono) bisogno di tornare a una versione precedente del sito web, ma potrebbe non perché avevano spezzato?

  2. Usano un server di gestione temporanea Web per testare le modifiche?

  3. Sicuramente essi non modificare il codice nel server di produzione senza alcuni test da qualche parte?

ho il sospetto la risposta alla prima è "(i disastri che hanno avuto) Sì" e il secondo "no", e ho esitato a indovinare la risposta per il terzo (ma. Dai suoni di esso, la risposta potrebbe essere "sì, lo fanno davvero"). Se è corretto, ammiro la loro spavalderia e sono stupito dal fatto che non abbiano mai commesso un errore. Non rischierei mai di apportare modifiche direttamente su un sito web in diretta.

mi consiglia di utilizzare un sistema di controllo di versione o VCS (qualsiasi VCS) da soli. Elaborare le rughe per il codice che si prende cura e sviluppare la distribuzione fluida che semplifica (probabilmente ancora utilizzando SFTP) per distribuire il codice VCS al sito web. Ma mostra anche che conservare le versioni precedenti ha i suoi meriti, perché puoi recuperare chi ha fatto cosa quando. Per cominciare, potresti scoprire che devi scaricare la versione corrente di qualsiasi pagina (file) su cui devi lavorare e inserire l'ultima versione nel VCS prima di iniziare a modificare la pagina, perché qualcun altro potrebbe averlo modificato dal momento che è stato aggiornato l'ultima volta nel tuo repository principale.Potresti anche voler fare un "scrap" quotidiano dei file per ottenere le versioni correnti e tenere traccia delle modifiche. Non avresti il ​​"chi", né esattamente "quando" (meglio del giorno più vicino), né il "perché", ma avresti il ​​(cumulativo) "cosa" dei cambiamenti.


In risposta ai commenti in questione, Ólafur Waage chiarito che hanno avuto disastri a causa della mancanza di un VCS.

Questo di solito rende la vita molto più facile. Hanno fatto finta; non potevano disfare la cosa - probabilmente avevano clienti irritati, e avrebbero dovuto essere incredibilmente infastiditi da loro stessi. Un VCS rende molto più facile il recupero da tali errori. Ovviamente, per qualsiasi sito personalizzato, è necessario il backup (centrale) della versione "corretta" o "ufficiale" di quel sito disponibile nel VCS. Probabilmente andrei a cercare un singolo repository per tutti i clienti, usando un VCS che ha un buon supporto per ramificazioni e fusioni. All'inizio questo potrebbe essere più difficile da affrontare (mentre le persone si stanno abituando a usare un VCS), ma probabilmente porterà a risultati migliori a lungo termine. Prenderò seriamente in considerazione l'utilizzo del moderno VCS distribuito (ad esempio, git), sebbene molte persone utilizzino anche SVN (anche se non è un VCS distribuito).

+0

Grazie per l'aggiornamento e la risposta. –

2

è possibile utilizzare tartaruga client SVN per creare e lavorare con un repository sulla propria macchina locale su qualche altro percorso del file allora il vostro percorso di lavoro è ....

magari cercare di messa a punto e l'uso che per te stesso e spettacolo loro dopo un po 'cosa può fare per te. un'altra cosa interessante potrebbe essere l'installazione di trac (http://trac.edgewall.org/) sul tuo server se hai accesso e privilegi per farlo, o forse in qualche macchina virtuale sul tuo computer di sviluppo. puoi mappare trac alla tua svn e ottenere cambiamenti svn nell'interfaccia web che puoi mostrare al project manager. forse cadrà per quello che sarà in grado di vedere facilmente le modifiche al codice attraverso l'interfaccia web. naturalmente, puoi farlo solo con il modulo apache + svn, ma questo è più bello in quanto offre un percorso di ticketing e roadmapping (pietre miliari e cose che i gestori potrebbero scavare: o)) ..

buona fortuna comunque :) . almeno, usalo per il tuo lavoro sul tuo computer locale perché c'è solo un guadagno per te.

+0

Adoro il commento sulla connessione a trac, grazie. –

+0

mi piace il software, l'ho guardato per un po 'e l'ho appena installato 2 settimane fa, e sono la persona più felice da allora ... :). semplice, utile, facile da usare ... e da 0.11.x facile da installare. L'ho installato e funzionante in Debian pulito installato in VM in meno di mezz'ora. – zappan

2

È possibile installare SVN sul sistema locale per la demo. Ci sono alcuni strumenti per integrare Zend ed Eclipse in SVN. Penso che oltre a fare una demo di SVN, dovresti dare loro una presentazione di alcuni dei benefici che porteranno (probabilmente durante la demo).

andare a questo link per alcune idee: Do I Really Need Version Control?

1

Ólafur, lei ha detto che "lo studio fa un sistema CMS che è ospitato su centinaia di siti." Questa potrebbe essere la carota di cui hai bisogno. Se il team distribuisce spesso aggiornamenti a queste centinaia di siti, l'utilizzo di diramazioni all'interno di un sistema di controllo della versione può rendere questo processo molto più semplice per tutti. Questo potrebbe essere un enorme risparmio di tempo e quindi fornirebbe un incentivo per le persone ad apprendere il sistema di controllo della versione.

Sembra che questi siti siano tutti correlati - versioni personalizzate dello stesso CMS. In tal caso, è necessario inserire tutti i siti nello stesso repository, oltre al prodotto CMS non personalizzato. Quindi puoi configurarli tutti come rami dello stesso prodotto centrale. Se si utilizzano repository separati, non esistono modi semplici per creare rami per correlare le personalizzazioni al prodotto principale. (Penso che si può farlo con Subversion, e molto probabilmente gli altri, ma è complicato e inutile se tutti gli sviluppatori lavorano per la stessa organizzazione.)

+0

Scusa avrei dovuto dire che il CMS stesso è centralizzato ma si ha un punto dato che ci sono alcuni elementi all'interno di ciascun sito che vorrei poter cambiare. –

0

VisualSVNServer e TurtoiseSVN sono i due programmi che uso, sono entrambi ben documentato e si integra perfettamente con Windows Explorer e Visual Studio.

0

Effettuare la parte di implementazione di un processo di 'build' automatico in modo che nessuno sviluppatore debba preoccuparsene. Utilizzare 'stream' per mantenere il lavoro in un'area di sviluppo, area qa e area di rilascio, quindi disporre di processi automatizzati che implementano gli ambienti di sviluppo, qa e release più recenti.

+0

Altri flussi sono ovviamente possibili. – Brody

2

Ecco un trucco che tutti si amano:

abbia inserito questo 'plugin' nella maggior parte dei miei siti produttivi: Naturalmente, è necessario creare un account con diritti limitati robot svn per questa prima e svn deve essere installato sul server.

echo(' updating from svn<br>'); 
    $username = Settings::Load()->Get('svn','username'); 
    $password = Settings::Load()->Get('svn','password'); 
    echo(" <pre>"); 
    $repos = Settings::Load()->Get('svn' , 'repository'); 
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force"); 
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force"); 

    die(); 

assicuratevi di mettere questo dietro un sito .htpasswded naturalmente, e assicurarsi che non si aggiornano le 'impostazioni di produzione' da SVN. Et voilà, aggiorni la tua base di codice completa con una query HTTP al tuo sito :) SVN sovrascrive automaticamente i file, non ci sono file o cartelle nascoste e si adatta facilmente all'aggiornamento o al ripristino di una versione specifica. Ora tutto ciò che il tuo team deve fare è impegnarsi nel loro repository SVN, eseguire questo pezzo di codice nell'ambiente di testing, assicurarsi che tutto funzioni e quindi eseguirlo in produzione :)

+0

Molto bello, ti darò più + se potessi. –

0

Basta mettere l'SVN nel mezzo.

Il team di sviluppo ha inserito la nuova roba in subversion, e quindi si dispone di uno script che esporta gli elementi da svn e li invia al server web.

Questo è abbastanza vicino al modo in cui funzionano oggi, ma ogni piccolo cambiamento è stato registrato in sovversione, quindi se il fulmine colpisce è possibile tornare tutto in tempo davvero veloce.

/Johan

Problemi correlati