La principale différence entre les flux de travail de Gerrit et de GitHub réside dans la modélisation des changements.
Dans Gerrit, chaque engagement est un changement autonome. Bien que Gerrit vous montre les relations entre les validations, les révisions sont effectuées validation par validation. Les équipes qui savent bien décomposer de gros changements en petits commits autonomes auront probablement plus de succès avec Gerrit. Cependant, étant donné que le modèle de Gerrit inclut des révisions successives d'un commit particulier, il encourage les workflows Git auxquels de nombreux développeurs ne sont pas habitués. commettre.
Dans Github, une demande d'extraction modélise une relation entre deux branches. Le flux de travail attendu sur Github consiste à valider une ou plusieurs modifications dans une branche de sujet (souvent dans une branche du référentiel, mais pas nécessairement) et à créer une demande d'extraction entre cette branche et la branche "en amont". Dans ce cas, ce qui est examiné est un ensemble d’engagements qui continue de croître au fur et à mesure de l’examen. Le résultat est un ensemble de modifications qui peuvent ensuite être fusionnées de manière atomique lorsqu'elles sont terminées. Les demandes d'extraction peuvent être efficaces pour suivre les modifications avec une portée plus grande pouvant être implémentée sur plusieurs validations. Les demandes d'extraction prennent également en charge les flux de travail SCM auxquels plus de développeurs sont habitués, par exemple en répondant à un commentaire de révision en soumettant un commit de suivi dans la même branche.
Un grand avantage en faveur de Github est le nombre de développeurs qui le connaissent bien par rapport à Gerrit. Gerrit peut être populaire auprès des utilisateurs assidus de Git, mais son utilisation sans frottement nécessite des connaissances git intermédiaires ou avancées, ainsi qu'une bonne tolérance à l'égard d'une courbe d'apprentissage abrupte.
L'avantage de Gerrit est une relation plus profonde avec Git. Les demandes d'extraction Github sont suffisamment éloignées du modèle de données standard de Git pour qu'il soit nécessaire d'utiliser l'interface utilisateur Web de Github ou son API propriétaire pour créer des demandes d'extraction. L'interface de Gerrit pour créer et mettre à jour les modifications est le protocole git lui-même.