Pergunta

Por onde devo começar a aprender sobre sistemas de controle de versão?Eu usei SVN, Team Foundation e Sourcesafe no passado, mas realmente não sinto que entendi completamente, e minha equipe também não parece entender.

Quais pontos são os mais importantes para dominar?Sei que isso difere de VCS para VCS, mas para responder a esta pergunta podemos assumir que o Subversion é o VCS que estou mais interessado em aprender.

Além disso, se puder, recomende quaisquer livros sobre o assunto que você considere úteis.

Foi útil?

Solução

O artigo da Wikipedia sobre Controle de Revisão é um ótimo lugar para começar

Controle de revisão

Ao tentar ensinar meus colegas, descobri que fazê-los entender o vocabulário no final era uma ótima maneira de começar a apresentá-los às técnicas de controle de código-fonte.

Não sabe o que é um ramo?Vá descobrir e como eles funcionam :)

Há um livro de subversão on-line gratuito em Controle de versão com Subversion que fornece uma referência inestimável.

Outras dicas

Acho que os pontos mais importantes que devemos aprender sobre sistemas de controle de origem são os seguintes:

  • o valor de check-ins/commits pequenos e frequentes
  • marcação, ramificação e fusão
  • reversões
  • resolução de conflitos
  • exclusivo vs.check-out não exclusivo
  • integração contínua
  • Desenvolvimento orientado a testes e testes de unidade automatizados em relação a sistemas de controle de origem
  • bifurcação

Se você abordou esses conceitos principais, isso é praticamente a maioria das coisas que você precisa saber para controle de origem :)

Existem alguns e-books gratuitos sobre o assunto.Tentar:

Controle de versão com Subversion: Controle de versão com subversão

Controle de versão do Subversion (PDF): Controle de versão do Subversion

Eu li e recomendaria o primeiro.Não li "Subversion Version Control", mas parece bastante detalhado.

Para responder à sua pergunta, re:Quais são os pontos mais importantes a serem dominados, eu sugeriria que depois de passar por todo o processo de check-in e check-out, revertendo para versões antigas e realizando diferenças, você deveria dar uma olhada na ramificação.A ramificação pode ajudá-lo a lidar com a dor de estar no meio de uma grande mudança e, de repente, precisar realizar uma correção de bug e implantá-lo na produção sem misturar as coisas incompletas nas quais você está trabalhando.

Acho que a documentação do Subversion é um bom lugar para começar.Descobri que a Wikipédia realmente não ajuda, pois cobre apenas um ponto de vista “fundamental”.

No Livro Subversão que Alex mencionou, eu recomendaria especialmente o Capítulo 1, embora possa estar em um nível muito baixo se você já tiver alguma experiência com Svn.O Capítulo 4 aborda detalhadamente a ramificação e a fusão, mas é bastante técnico.

O que me ajudou muito foi o Guia de uso diário na documentação do TortoiseSVN;cobre as operações mais importantes em estilo tutorial.

Acho que as coisas mais importantes que você precisa entender são ramificação, fusão e marcação.Compreender isso leva tempo e prática, então eu recomendo fortemente um pequeno projeto de estimação em um repositório local, para que você possa experimentar.Acho que é importante perceber que todo o sistema é baseado em diferenças:uma mesclagem nada mais é do que aplicar automaticamente as alterações feitas em uma ramificação ao código de outra ramificação, em vez de você mesmo corrigir o código.Coisas como conflitos (que levei muito tempo para entender) são apenas consequências disso.

Mas é claro que ainda estou aprendendo :)

Eu também, como você, nunca me senti 100% confortável com SVN ou SourceSafe.

Confira Mercurial. Começo rápido e Folhas de dicas
também um ótimo folha de dicas de DongWoo Lee (o site dele parece fora do ar, então eu escaneei e carreguei no meu)

Com o Mercurial tudo parecia muito mais suave e fácil, não sei por que, porque não é tão diferente nos comandos dos outros.

Não tenho certeza de quanta experiência você tem com sistemas de controle de versão, mas para quem não tem conhecimento prévio sobre o conceito recomendo a leitura dos primeiros capítulos do Livro Subversão.Algumas das coisas descritas são específicas do Subversion, mas muitos dos conceitos são "universais" para sistemas de controle de versão e como trabalhar com eles.

Acho muito importante que as pessoas se esforcem para tentar entender os principais conceitos e lógicas por trás dos sistemas de controle de versão antes de começarem a utilizá-los.Muitas vezes vejo desenvolvedores usando apenas um pequeno subconjunto de recursos de seus sistemas porque não entendem os conceitos subjacentes e, portanto, ou não veem sentido em usar o que consideram recursos "avançados" ou "desnecessários", ou são simplesmente com medo de fazer isso, com medo de quebrar alguma coisa ou causar problemas ao projeto.

Tendo vivenciado esse fenômeno com muitos desenvolvedores no passado, escrevi recentemente um resumo do que considero práticas recomendadas para controle de versão no meu blog.

Confira GIT.Uma conversa sobre isso aqui.

IMHO, o melhor recurso de rede para gerenciamento de configuração seria O Projeto ACME por Brad Appleton

Você deve ler sobre todos os padrões SCM e anti-padrões.Todos os termos técnicos de SCM estão bem definidos neste site e há muitos artigos sobre técnicas de ramificação, SCM ágil e outras coisas importantes.

Isso provavelmente lhe dará base teórica suficiente para lidar com qualquer ferramenta de versão específica.

Quanto a um livro do Subversion, provavelmente será o livro oficial Livro Subversão que foi mencionado acima.Ele está disponível online gratuitamente ou você pode comprar uma cópia impressa.

IMHO, isso é O livro:O livro de Berczuk sobre padrões SCM

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