Estamos iniciando uma nova equipe de tamanho muito pequeno (digamos, 2-5). Minha pergunta é: qual tipo de controle de versão funciona melhor para esse tipo de equipe, centralizada ou distribuída.
Estamos iniciando uma nova equipe de tamanho muito pequeno (digamos, 2-5). Minha pergunta é: qual tipo de controle de versão funciona melhor para esse tipo de equipe, centralizada ou distribuída.
Respostas:
Distribuído todo o caminho, não há realmente nenhum ponto para o IMHO centralizado, especialmente se você estiver falando sobre o desenvolvimento da equipe.
Outro voto para o Mercurial, sem problemas para configurar no Windows e o bitbucket.org possui repositórios gratuitos (que podem ser privados) com espaço ilimitado.
Se você planeja trabalhar em um projeto de código aberto, o git e o Github parecem ser mais adequados / populares. No entanto, se você não se aventurou nos DVCSs, recomendo começar com o Mercurial e este guia incrível .
aquele que todos vocês usarão consistentemente
[pessoalmente, eu gosto do Mercurial]
Provavelmente, a melhor resposta é "o que você quiser". Mesmo quando trabalho com coisas pessoais, eu uso o Git. Parece fazer um bom trabalho de escalar para cima e para baixo e minha experiência limitada com o Mercurial é praticamente a mesma.
Eu acho que você deve escolher o que você quiser. Em uma equipe pequena, você não terá árvores de código diferentes (como o kernel do Linux), portanto, um repositório central está OK. Mas você pode ter essa configuração também com VCS distribuído. Então, eu iria com popularidade e experiência pessoal. Populares são SVN, git e Mercurial. Você deve decidir qual deles é melhor usado com sua equipe (experiência, suporte de ferramenta no IDE escolhido etc.).
Realmente depende de seus desenvolvedores desenvolverem ou não muito código offline ou não, mas apenas escolher entre um repositório distribuído ou centralizado, pois essa é a primeira coisa que você deve decidir. Então, se você decidir que uma abordagem centralizada funciona melhor que o SVN, é tudo o que você precisa. Por outro lado, se você optar por uma abordagem distribuída, em vez de usar o git, mesmo no Windows, é bom o suficiente, pois agora você tem o tartartoise git (a mesma interface que também existe para o svn). Além disso, não conte muito com o suporte do IDE, pois poderá ser uma surpresa desagradável se você usá-lo e poderá achar que os arquivos que não devem ser confirmados são confirmados em seu nome pelo IDE.
Pergunte à sua equipe se alguém quer cuidar disso. É muito melhor ter um sistema estável e uma pessoa responsável do que um bom sistema quando ninguém se importa com isso e ninguém é capaz de restaurá-lo a partir do backup.
Se houver essa pessoa - ele já saberá o que usar, então aceite sua decisão. Caso contrário, obtenha uma solução hospedada. Seria muito estúpido tentar o GIT (um dos melhores) se todos os desenvolvedores nunca tocassem no Shell / Linux.
Também depende do número de pessoas "não técnicas" que precisam ler / contribuir. Apenas certifique-se de que eles possam usá-lo, e existem ferramentas disponíveis.
O SVN é amplamente suportado em ferramentas. Ferramental é a chave; pessoas diferentes terão diferentes conjuntos de habilidades. Alguns preferem a linha de comando, outros preferem ferramentas baseadas em IDE, outros preferem ferramentas gráficas. No momento, o SVN parece ser a ferramenta mais amplamente suportada.
Fora isso Mercurial ou Git.
Eu acho que nas pequenas empresas há argumentos para ter certas coisas centralizadas. (Pense, por exemplo, em backup externo. Quando você tem apenas duas pessoas trabalhando em um projeto e elas estão alojadas no mesmo prédio e há um incêndio, descentralizar os dois computadores pode não ser suficiente.)
No entanto: ter uma solução parcialmente centralizada não o limita a um sistema centralizado. Você pode simplesmente enviar para um servidor externo com algo como git ou mercurial.