Revisão de código Gerrit, ou modelo de fork e pull do Github?

59

Estou iniciando um projeto de software que será desenvolvido pela equipe e pela comunidade. Anteriormente, eu era vendido no gerrit, mas agora o modelo de solicitação fork e pull do Github parece fornecer quase mais ferramentas, formas de visualizar commits e facilidade de uso.

Para alguém que tenha pelo menos uma pequena experiência com ambos, quais são os prós / contras de cada um e qual seria melhor para um projeto baseado em equipe que deseja deixar aberta a possibilidade de desenvolvimento comunitário?

    
por user1366476 01.11.2012 / 21:43
fonte

1 resposta

81

A principal diferença entre os fluxos de trabalho do Gerrit e do GitHub é como as mudanças são modeladas.

Em Gerrit, todo commit é uma mudança que ocorre sozinha. Embora o Gerrit mostre as relações entre os commits, as revisões são realizadas por confirmação. Equipes que são boas em quebrar grandes mudanças em pequenos compromissos autônomos provavelmente terão mais sucesso com Gerrit. No entanto, desde o modelo de Gerrit inclui revisões sucessivas para um compromisso particular que incentiva fluxos de trabalho Git que muitos desenvolvedores não estão acostumados a, como alterar um commit anterior e reimpulsioná-lo, ou esmagar um conjunto crescente de commits de um branch tópico em um único commit.

No Github, um pedido pull modela um relacionamento entre dois ramos. O fluxo de trabalho esperado no Github é cometer uma ou mais alterações em uma ramificação de tópico (geralmente em uma bifurcação do repositório, mas não necessariamente) e criar uma solicitação pull entre essa ramificação e a ramificação "upstream". Nesse caso, o que está sendo revisado é um conjunto de confirmações que continua aumentando à medida que a revisão continua. O resultado é um conjunto de alterações que podem ser mescladas atomicamente quando são concluídas. As solicitações pull podem ser eficazes no rastreamento de alterações com um escopo maior que pode ser implementado em várias confirmações. As solicitações de recepção também suportam fluxos de trabalho de SCM com os quais mais desenvolvedores estão acostumados, como responder a um comentário de revisão enviando uma confirmação de acompanhamento na mesma ramificação.

Uma grande vantagem em favor do Github é o número de desenvolvedores que estão familiarizados com ele em comparação com Gerrit. O Gerrit pode ser popular entre usuários avançados do Git, mas o uso livre de atrito requer conhecimento git intermediário ou avançado e tolerância a uma curva de aprendizado.

A vantagem de Gerrit é um relacionamento mais profundo com o Git. As solicitações de pull do Github estão longe o suficiente do modelo de dados padrão do Git, que é necessário usar a interface do usuário da web do Github ou sua API proprietária para criar solicitações de pull. A interface do Gerrit para criar e atualizar mudanças é o próprio protocolo git.

    
por 05.11.2012 / 06:40
fonte