Revisione del codice Gerrit o modello di fork e pull di Github?

60

Sto avviando un progetto software che sarà sviluppato da team AND community. In precedenza ero già stato venduto su gerrit, ma ora il modello di richiesta di fork e pull di Github sembra quasi fornire più strumenti, modi per visualizzare i commit e facilità d'uso.

Per qualcuno che abbia almeno una piccola esperienza con entrambi, quali sono i pro / contro di ciascuno, e quale sarebbe meglio per un progetto basato sul team che vuole lasciare aperta la possibilità di sviluppo della comunità?

    
posta user1366476 01.11.2012 - 21:43
fonte

1 risposta

82

La principale differenza tra i flussi di lavoro di Gerrit e GitHub è la modellazione dei cambiamenti.

In Gerrit, ogni commit è un cambiamento che sta da solo. Sebbene Gerrit ti mostri le relazioni tra i commit, le recensioni vengono eseguite in base al commit. Le squadre che sono brave a rompere grandi cambiamenti in piccole commesse autonome avranno probabilmente più successo con Gerrit. Tuttavia, dal momento che il modello di Gerrit include revisioni successive a un particolare commit incoraggia i flussi di lavoro Git a cui molti sviluppatori non sono abituati, come modificare un commit precedente e reinserirlo, o schiacciare una serie crescente di commit da un ramo di argomento in un singolo commit.

In Github, una richiesta di pull modella una relazione tra due rami. Il flusso di lavoro previsto su Github consiste nel trasferire una o più modifiche in un ramo dell'argomento (spesso in un fork del repository, ma non necessariamente) e creare una richiesta pull tra quel ramo e il ramo "upstream". In questo caso, ciò che viene esaminato è un insieme di commit che continua a crescere man mano che la revisione continua. Il risultato è un insieme di modifiche che possono essere unite atomicamente quando sono complete. Le richieste di pull possono essere efficaci nel tenere traccia delle modifiche con un ambito più ampio che può essere implementato su più commit. Le richieste di pull supportano anche i flussi di lavoro SCM a cui sono più abituati gli sviluppatori, come rispondere a un commento di revisione inviando un commit di follow-up nello stesso ramo.

Un grande vantaggio a favore di Github è il numero di sviluppatori che hanno familiarità con esso rispetto a Gerrit. Gerrit può essere popolare con gli utenti esperti di Git, ma l'uso privo di attriti richiede conoscenze git intermedie o avanzate e tolleranza di una curva di apprendimento ripida.

Il vantaggio di Gerrit è una relazione più profonda con Git. Le richieste di pull di Github sono abbastanza lontane dal modello di dati standard di Git che è necessario utilizzare l'interfaccia utente web di Github o la sua API proprietaria per creare richieste di pull. L'interfaccia di Gerrit per la creazione e l'aggiornamento delle modifiche è il protocollo git stesso.

    
risposta data 05.11.2012 - 06:40
fonte

Leggi altre domande sui tag