Una delle differenze tra svn e git è la capacità di controllare l'accesso al repository. È difficile confrontare i due perché c'è una differenza di prospettiva su chi dovrebbe essere autorizzato a commettere cambiamenti!
Questa domanda riguarda l'uso di git come repository centralizzato per un team di un'azienda da qualche parte. Supponiamo che i membri del team abbiano livelli di abilità variabili, come nella maggior parte delle aziende.
Git sembra presumere che i tuoi unici programmatori migliori (i più produttivi, i più esperti) siano affidabili per il check-in del codice. In tal caso, stai prendendo il loro tempo lontano dalla scrittura del codice per rivedere il codice di altre persone al fine di controllarlo. Questo paga? Voglio davvero concentrare questa domanda su qual è il miglior uso del tempo del tuo miglior programmatore, non sulle migliori pratiche di controllo della versione in generale . Un corollario potrebbe essere: i bravi programmatori si ritirano se una parte significativa del loro lavoro consiste nel rivedere il codice di altre persone? Penso che entrambe le domande si riducano a: la recensione vale il colpo di produttività?
git
qualsiasi sviluppatore può avere il proprio repository (sul suo personal computer) e un repository personale pubblico (quello su un server, dietro apache
) a cui può solo aggiungere modifiche. La differenza è che solo il repository degli sviluppatori principali è il "beato", quello da cui tutti dovrebbero effettuare il checkout. Il codice di checkout principale dai repository pubblici dello sviluppatore e li unisce al suo repository pubblico. Entrambi avete conosciuto / controllato l'iterazione e il controllo del codice sorgente in ogni momento.