Uma das diferenças entre svn e git é a capacidade de controlar o acesso ao repositório. É difícil comparar os dois, porque há uma diferença de perspectiva sobre quem deve ter permissão para cometer mudanças!
Esta pergunta é sobre o uso do git como repositório centralizado para uma equipe em uma empresa em algum lugar. Suponha que os membros da equipe tenham diferentes níveis de habilidade, da mesma forma que na maioria das empresas.
O Git parece assumir que apenas seus melhores programadores (mais produtivos, mais experientes) são confiáveis para verificar o código. Se for esse o caso, você está dispensando o tempo de realmente escrever o código para revisar o código de outras pessoas para fazer o check-in. Isso vale a pena? Eu realmente quero focar essa pergunta no melhor uso do tempo do seu melhor programador, não nas melhores práticas de controle de versão em geral . Um corolário pode ser: bons programadores param de trabalhar se uma parte significativa de seu trabalho é revisar o código de outras pessoas? Penso que ambas as questões se resumem a: a revisão vale a pena a produtividade atingida?
git
qualquer desenvolvedor pode ter seu próprio repositório (em seu computador pessoal) e um repositório pessoal público (aquele em um servidor, atrás apache
) ao qual ele só pode adicionar alterações. A diferença é que apenas o principal representante do desenvolvedor é o "abençoado", aquele em que todos deveriam fazer o checkout. O código de checkouts de chumbo dos repositórios públicos do desenvolvedor e os mescla ao seu repositório público. Vocês dois têm iteração conhecida / controlada, bem como controle de origem o tempo todo.