2009-09-23 11 views
5

Sto cercando suggerimenti su come strutturare i progetti usando repository e branch git.Alla ricerca di un suggerimento per un repository di siti Web di git/struttura di diramazione

Si supponga di volere un repository remoto e il mio progetto è un sito Web che utilizza un widget Flash. Il widget Flash è compilato dal codice sorgente che ho scritto.

Per distribuire il mio sito Web, vorrei che il server di produzione fosse solo un altro client Git che estrae dall'archivio remoto, ma non voglio che il codice sorgente del widget Flash sia nella copia di lavoro del mio server di produzione.

Potrei farlo avendo un ramo "master" che contiene sia src/che www/e un ramo "www" che ha solo "www /". Ma poi il mio team di sviluppo deve ricordarsi di controllare le modifiche relative al sito web al ramo www e il codice sorgente Flash cambia in master.

Quindi due domande: come si confronta questa soluzione con i propri progetti? E, hai scoperto che nei tuoi team i tuoi sviluppatori non riescono a tenere traccia delle filiali e accidentalmente a commettere e spingere le modifiche che dovrebbero essere in un ramo su un altro?

risposta

4

La mia preferenza personale è non per mantenere una copia del repo Git sul server di produzione. Per distribuire il mio sito Web, utilizzo uno script di distribuzione che utilizza git archive per sputare una copia "Git-less" del repository, che viene quindi copiata sul server di produzione tramite SCP. Io uso Python Fabric per questo scopo, ma si potrebbe anche usare Ruby's Rake, o qualcos'altro interamente.

La distribuzione è un gioco da ragazzi: eseguo solo un comando e tutto viene copiato e configurato sul server di produzione.

+1

Sono d'accordo con non tirare direttamente dal repository. Utilizzare una macchina di compilazione/distribuzione da qualche parte per sincronizzare il codice, eseguire gli elementi di compilazione richiesti, comprimerlo e consegnarlo alla produzione. –

+0

Sembra una buona idea e qualcosa da considerare. Ma continuerei ad archiviare sia le directory src/che www/nel mio repository. Hai repository separati per src e www e il sottomodulo git uno nell'altro per lo sviluppo, o usi le filiali? –

+0

Non ho il codice sorgente Flash, quindi la mia situazione non è esattamente uguale alla tua. L'utilizzo dei sottomoduli sembra una buona soluzione, oppure è possibile modificare lo script di distribuzione per ignorare i file che non si desidera inviare al server di produzione. – mipadi

Problemi correlati