2009-03-19 13 views
5

Dalla mia esperienza con i sistemi di controllo della versione distribuita (DVCS) come git e mercurial in progetti open source, la maggior parte dei modelli di installazione utilizza un'impostazione centralizzata per il loro progetto (si pensi a GitHub).Come configurare il controllo della versione distribuita in un'azienda

Quando si introduce VCS distribuito in un'azienda, si dispone di un modello di installazione centralizzato?

risposta

4

È una buona idea disporre di una sorta di archivio centrale, perché consente di condividere il codice, ma ha anche un ramo da cui è possibile generare direttamente le build/esportare le proprie istantanee. Quel server probabilmente avrà più di un ramo, uno dei quali è pensato come un ramo 'tronco'. Tutte le versioni precedenti avranno una propria filiale e, a seconda della gerarchia della tua squadra (cioè se sei diviso in gruppi con ciascun gruppo che lavora su un aspetto dell'applicazione), allora potrebbero esserci filiali di team o di funzioni, anche se non Lavorare in quel modo non è necessario.

Ovviamente, poiché è distribuito, ogni sviluppatore avrà anche il proprio repository locale, per rendere le cose belle e veloci. Oppure possono avere più repository, anche. Ad esempio, uno sviluppatore a cui piace lavorare durante il pendolarismo può avere un repository sulla sua stazione di lavoro e un altro sul suo laptop, con le diramazioni sul suo laptop che vengono "ritirate" da quelle sulla sua workstation. Dipende da lui. Immagino che la parte "distribuita" rende questo tipo di cose molto più semplice, perché puoi commettere e persino diramarti mentre sei lontano dalla rete.

Se si passa da un VCS non distribuito, è possibile passare direttamente allo stesso modello di prima, poiché un DVCS è abbastanza flessibile da funzionare allo stesso modo. Altrimenti, puoi iniziare con un singolo repository centrale con poche diramazioni, ed è sempre banalmente facile creare più repository e filiali in seguito.

Un'ultima cosa è che hai ancora bisogno di backup. Il fatto che vari sviluppatori abbiano ciascuno copie della stessa cosa aggiunge ridondanza, ma non è il invece dei backup.

Il DVCS che uso regolarmente è Bazaar. Ho anche provato Mercurial.

0

Questa non è esattamente una funzionalità che li distingue dall'altro tipo di VCS che sono chiamati VCS centralizzati.

Quindi, se la società ha esperienza con svn per esempio. Con un server dedicato per il repository e il modello di backup, è possibile applicare praticamente la stessa cosa per il DVCS.

0

Sì, penso che per un'azienda, o almeno un prodotto dell'azienda, sia preferibile o almeno più semplice disporre di un modello di configurazione centralizzato. Tu sono cercando di creare un unico prodotto coerente, dopotutto.

Tuttavia, DVCS instilla uno spirito e una modalità di lavoro diversi che è possibile incoraggiare o meno nella propria squadra. In particolare, aumenta la sperimentazione (basta usare una copia locale e non stai disturbando nessuno). È più semplice per la manutenzione di vecchie versioni o se si eseguono molte modifiche specifiche del client che devono essere tenute traccia di esse senza inserirle nel prodotto reale.

E 'di valore inestimabile quando si ha una squadra che lavora molto fuori sede. Nella mia azienda gli ingegneri spesso apportano modifiche all'ultimo minuto sul posto, dove per motivi di sicurezza non hanno accesso a Internet. VCS centrale semplicemente non funziona per questo scenario.

Quindi esiste un repository centrale, ma il fatto che sia possibile funzionare in modo decentralizzato è inestimabile. DVCS è un superset di VCS centralizzato in termini di flussi di lavoro. Naturalmente, puoi comunque scegliere di utilizzare un VCS centralizzato se non pensi di aver bisogno (o vuoi!) Delle opzioni aggiuntive.

Problemi correlati