Pergunta

Eu tentei usar o controle de origem para alguns projetos, mas ainda realmente não entendo.Para esses projetos, temos usado o TortoiseSVN e só tinha uma linha de revisões.(Nenhum tronco, ramos, ou qualquer um que.) Se há uma forma recomendada para configurar sistemas de controle de origem, o que são eles?Quais são as razões e benefícios para definir de que forma?O que está subjacente diferenças entre o funcionamento de um sistema centralizado e distribuído sistema de controle de origem?

Foi útil?

Solução

Eu recomendo verificar o seguinte a partir de Eric Pia:

http://www.ericsink.com/scm/source_control.html

Ter algum tipo de sistema de controle de revisão no local é, provavelmente, a ferramenta mais importante que um programador tem para a revisão do código mudanças e o entendimento de quem fez o quê a quem.Até mesmo uma única pessoa projectos, é de valor inestimável para ser capaz de comparação atual código anterior conhecida versão de trabalho para entender o que pode ter dado errado, devido a uma mudança.

Outras dicas

Pensar de controle de origem como um gigante "Desfazer" botão para seu código-fonte.Cada vez que você o check-in, você está adicionando um ponto para o qual você pode recuperar.Mesmo se você não usar ramos/fusão, esse recurso só pode ser muito valioso.

Além disso, por ter um 'autoritário' versão do controle de origem, torna-se muito mais fácil para fazer o backup.

Centralização versusdistribuído...a diferença é realmente que, distribuída, não há necessariamente um 'autoritário' versão do controle de origem, embora, na prática, geralmente, as pessoas ainda têm o mestre de árvore.

A grande vantagem distribuído de controle de origem é dupla:

  1. Quando você usar distribuído de controle de origem, você tem toda a árvore de código fonte em sua máquina local.Você pode cometer, criar sucursais, e funciona praticamente como se você estivesse sozinha, e então quando você estiver pronto para empurrar as alterações, você pode promover a partir de sua máquina para que a cópia principal.Se você estiver trabalhando off-line" muito, isso pode ser um benefício enorme.

  2. Você não tem que pedir autorização a ninguém para se tornar um distribuidor de controle de origem.Se Uma pessoa está a executar o projeto, mas a pessoa B e C quiser fazer mudanças, e compartilhar as alterações com o outro, torna-se muito mais fácil com distribuído de controle de origem.

Aqui estão dois artigos, que são muito úteis para entender o básico.Além de ser informativo, Pia da empresa comercializa uma grande fonte de produtos de controle de chamada do Cofre, que é gratuito para utilizadores único (não sou filiado em qualquer forma com que a empresa).

http://www.ericsink.com/scm/source_control.html

http://betterexplained.com/articles/a-visual-guide-to-version-control/

Cofre de informações em www.vault.com.

Mesmo se você não é do ramo, você pode achar que é útil para o uso de tags para marcar lançamentos.

Imagine que você lançou uma nova versão do seu software de ontem e começaram a fazer grandes mudanças para a próxima versão.Um usuário chama você para relatar um bug sério ontem com a versão.Você não pode corrigi-lo e copiar as alterações do seu desenvolvimento tronco porque as alterações que acabou de fazer a coisa toda instável.

Se você tivesse marcado o lançamento, você pode check-out de uma cópia de trabalho-lo e usá-lo para corrigir o erro.

Em seguida, você pode optar por criar uma ramificação da marca e verificar a correção do bug para ele.Dessa forma, você pode corrigir mais bugs que a versão enquanto você continuar a atualizar o tronco.Você também pode mesclar as correções para o tronco, de modo que poderá estar presente na próxima versão.

O padrão comum para a configuração do Subversion é ter três pastas sob a raiz do seu repositório:trunk, branches e tags.A pasta trunk possui o seu "principal" linha de desenvolvimento.Para muitas lojas e situações, isso é tudo o que sempre uso...apenas um único trabalho de repositório de código.

As marcas de pasta leva um passo a mais e permite que você "checkpoint" seu código em determinados pontos no tempo.Por exemplo, quando você lançar uma nova construção ou, por vezes, mesmo quando você simplesmente fazer uma nova compilação, você "etiquetar" uma copie para essa pasta.Este apenas permite que você saiba exatamente o que o seu código parecia que ponto no tempo.

Os ramos pasta contém diferentes tipos de ramos que você pode precisar em situações especiais.Às vezes, um branch é um local de trabalho experimental ou mais recursos que pode levar um longo tempo para chegar a estável (por isso você não deseja introduzir em sua linha principal ainda).Outras vezes, um ramo pode representar a "produção" cópia de seu código que pode ser editado e implementados independentemente de sua principal linha de código que contém alterações se pretende para um futuro lançamento.

De qualquer forma, este é apenas um aspecto de como configurar o seu sistema, mas acho que dar algum pensamento para essa estrutura é importante.

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