Pergunta

Eu estou ajudando a obter o SCM configurado para um novo programa, e estamos atualmente no processo de decidir sobre um VCS.

Os principais concorrentes neste momento são SVN, ClearCase, SVN + DVCS, e apenas a DVCS.

No momento, a equipe está inclinando-se para tanto SVN ou SVN + DVCS. Queremos evitar os custos de despesas e administração de ClearCase, mas quer que o fluxo de trabalho e opções de controle de versão que oferece. Eu trouxe adiante a opção de usar um DVCS, bem como, e a idéia está sendo considerado.

Para os DVCS, estamos considerando Mercurial, Bazaar, e Git. A equipe se sente confortável com o SVN, mas não acho que ele vai oferecer a versatilidade necessária, razão pela qual nós estamos olhando para os DVCS no topo opção SVN de.

Alguém tem algum conselho (por exemplo, as ferramentas existentes, processos) para obter tal configuração indo?

As preocupações incluem:

  • A facilidade de configuração
  • Criação de fluxos de trabalho (desenvolvimento <-> revisões de código -> teste -> tronco, em seguida, tronco -> integração ramo de teste -> versão com correções de bugs colocar em ramos de libertação), auditoria (encontrado um bug, quando foi introduzido )
  • métricas Geração
  • curva de aprendizagem razoável para os desenvolvedores usados ??para ClearCase.
  • desenvolvimento do Windows
  • Integração issue tracker (provavelmente vai ser Redmine, embora ele não está definido em pedra)
Foi útil?

Solução

Como administrador do ClearCase, gostaria de descartar essa ferramenta, a menos que você tem um fluxo de trabalho fusão complexa.

O fluxo de trabalho você menciona envolve ser capaz de ramo, correção e em seguida, mesclar volta facilmente , que não deve ser em favor do SVN.

A maior armadilha quando você está acostumado a ClearCase (espacially não-UCM ClearCase) é a "composição" de uma especificação de configuração.
Se você escolher um DVCS (Mercurial, Bazaar - ou Git, pois funciona muito bem no Windows ), você teria não ser capaz de obter o mesmo efeito "herança" - (quando você está selecionando versões diferentes, com diferentes regras selecione sucessivas - : como disse nessa resposta:

Em um VCS puramente central, você pode definir o seu espaço de trabalho (em ClearCase, a sua "visão" quer instantâneo ou dinâmico) com quaisquer regras que você deseja.
Isso não seria prático em um DVCS (como em "Distribuído."): Quando você está fazendo um ramo com ele, você precisa fazê-lo com um ponto de partida e um teor claramente definida e facilmente replicado para outros repositórios

Se você estiver usando ClearCase UCM, que significa identificar conjuntos coerentes de arquivos, que só pode ser alcançado através de - por exemplo - Git submódulos .
A complexidade é maior com esses DVCS, uma vez que não gravar as dependências entre módulos (ou "conjunto de arquivos") a forma ClearCase UCM faz.

Assim, para recapitular:

  • facilidade de instalação: todas as DVCS mencionados são fáceis de configurar. O que deve ser levado em conta é a administração em termos de acesso do usuário.
  • Criação de fluxos de trabalho: a DVCS suporta qualquer tipo de fluxo de trabalho, mesmo um centralizado, ou um público-privada, ou .... Quanto encontrar um bug, eles todo o apoio algum tipo de bisect processo .
  • métricas Geradoras:. Se por que você quer dizer "métricas sobre o código gerenciado", eles todo o apoio algum sistema de registro completo capaz de exibir uma grande quantidade de informações sobre o que mudou
    Mas em termos de "métricas sobre a ferramenta" (velocidade de um processo ou espaço ocupado pelos dados), as ferramentas DVCS mencionados são considerados muito mais rápido do SVN (veja aqui como um exemplo ).
  • curva de aprendizagem razoável para os desenvolvedores usados ??para ClearCase: a GUI pode ser um fator para aliviar a curva de aprendizagem, mas um DVCS é muito diferente do ClearCase, pois isso " conceitos fundamentais " resposta ilustra.
  • desenvolvimento do Windows:. Todos eles trabalham bem na plataforma Windows, talvez com uma ligeira vantagem (melhor integração) para Mercurial ou bazar
  • Issue integração rastreador (provavelmente vai ser Redmine, embora não é gravada na pedra): suportes Redmine agora a maioria deles (e não apenas SVN como fez no início)

Outras dicas

Qual é o problema com Git? Eu estou usando Git no Windows agora. Ele funciona muito bem. Git extensões é muito útil se você quiser alguma integração explorador, se esse for o seu problema.

Eu não tenho experiência com clearcase mas espero que a seguir irá ajudar alguns. Sua pergunta deixa de fora várias informações que eu iria ter em conta antes de decidir. Primeiro a quantidade de código fonte que você terá? Enquanto SVN é bom em meio a grandes projectos para realmente enormes queridos como o Linux kernel do Git irá fornecer um desempenho muito melhor. Segundo o IDE você está usando? Enquanto Mercurial, Git e SVN todos têm visual studio e eclipse plugins há qualidade muito. De acordo com o artigo da Wikipedia sobre Redmine qualquer um dos sistemas de SCM que você está olhando vai integrar. A seguir blog pode ser útil para você desde a sua compra escreveu um cara que escreve um sistema de SCM para a vida. http://www.ericsink.com/

Se você poderia deixar cair a exigência de que ele precisa ser executado no Windows, então eu recomendo olhando para Aegis .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top