Qual é a diferença entre todos os diferentes tipos de controle de versão?

StackOverflow https://stackoverflow.com/questions/3859

  •  08-06-2019
  •  | 
  •  

Pergunta

Depois de ser informado por pelo menos 10 pessoas no SO que o controle de versão era uma coisa boa, mesmo que fosse só eu, agora tenho uma pergunta complementar.

Qual é a diferença entre todos os diferentes tipos de controle de versão e existe algum guia que alguém conheça para controle de versão que seja muito simples e fácil de entender?

Foi útil?

Solução

Eric Sink tem um boa visão geral do controle de origem.Existem também alguns existir questões aqui no SO.

Outras dicas

Parece que estamos na era de ouro do controle de versão, com inúmeras opções, todas com seus prós e contras.

Aqui estão os que vejo mais usados:

  • svn – atualmente o código aberto mais popular?
  • git - muito quente desde que Linus mudou para ele
  • mercurial - algumas pessoas inteligentes que conheço juram que sim
  • cvs - aquele de quem todos estão migrando
  • forçosamente - imho, os melhores recursos, mas não é de código aberto.A licença para dois usuários é gratuita, no entanto.
  • visual sourcesafe - não estou muito no mundo da Microsoft, então não tenho ideia sobre este, a não ser que as pessoas gostem de criticar isso, assim como criticam tudo da Microsoft.
  • sccs - por interesse histórico mencionamos este, o bisavô de muitos dos itens acima
  • rcs - e o avô de muitos dos itens acima

Minha recomendação:você está mais seguro com git, svn ou perforce, já que muitas pessoas os usam, eles são multiplataforma, têm uma boa interface, você pode comprar livros sobre eles, etc.

Não considere cvs, sccs, rcs, eles são antigos.

O bom é que, como seus projetos serão relativamente pequenos, você poderá migrar seu código para um novo sistema quando tiver mais experiência e decidir que deseja trabalhar com outro sistema.

Para todos que estão começando a usar o controle de versão:

Por favor, não use git (ou hg ou bzr) por causa do hype

Use git (ou hg ou bzr) porque eles são melhores ferramentas para gerenciar código-fonte do que SVN.

Usei o SVN por alguns anos no trabalho e mudei para o git há 6 meses.Sem aprender primeiro o SVN, eu ficaria totalmente perdido quando se trata de usar um DVCS.

Para pessoas que estão começando com o controle de versão:

  • Comece baixando o SVN
  • Aprender por que você precisa de controle de versão
  • Aprenda como fazer commit, checkout, branch
  • Saiba por que mesclar no SVN é tão chato

Em seguida, mude para um DVCS e aprenda:

  • Como clonar/ramificar/comprometer
  • Como é fácil mesclar suas ramificações de volta (enlouqueça as ramificações!)
  • Como é fácil reescrever o histórico de commits e manter suas ramificações
    atualizado com a linha principal (git rebase -i, )
  • Como publicar suas alterações para que outras pessoas possam se beneficiar

tldr;multidão:

Comece com SVN e aprenda o básico, depois passe para DVCS.

Eu começaria com:

Então, depois de ler sobre isso, baixe e instale SVN, TortoiseSVN e folheie os primeiros capítulos do livro e comece.

O controle de versão é essencial para o desenvolvimento, mesmo se você estiver trabalhando sozinho, pois protege você de si mesmo.Se você cometer um erro, é simples reverter para uma versão anterior do seu código que você sabe que funciona.Isso também libera você para explorar e experimentar seu código, pois você não precisa se preocupar se o que está fazendo é reversível ou não.Existem dois ramos principais de Sistemas de Controle de Versão (VCS), Centralizados e Distribuídos.

Os VCS centralizados são baseados no uso de um servidor central, onde todos “fazem check-out” de um projeto, trabalham nele e “comprometem” suas alterações de volta ao servidor para que qualquer outra pessoa possa usá-las.Os principais VCS centralizados são CVS e SVN.Ambos foram fortemente criticados porque “fundir” “ramos” é extremamente doloroso para eles.[PENDÊNCIA:escreva uma explicação sobre o que são ramificações e por que a fusão é difícil com CVS e SVN]

Os VCS distribuídos permitem que todos tenham seu próprio servidor, onde você pode “extrair” alterações de outras pessoas e “enviar” alterações para um servidor.Os VCS distribuídos mais comuns são Git e Mercurial.[PENDÊNCIA:escreva mais sobre VCS distribuídos]

Se você estiver trabalhando em um projeto, recomendo fortemente o uso de um VCS distribuído.Eu recomendo o Git porque é extremamente rápido, mas tem sido criticado por ser muito difícil de usar.Se você não se importa em usar um produto comercial, o BitKeeper é supostamente fácil de usar.

O responder para outra pergunta também se aplica aqui, o mais importante

Jon trabalha disse:
A coisa mais importante sobre o controle de versão é:

APENAS COMECE A USAR

A resposta dele é mais detalhada e não quero ser acusado de plágio, então dê uma olhada.

A resposta simples é: você gosta dos botões Desfazer?A resposta é sim, claro, porque nós, como seres humanos, cometemos erros o tempo todo.

Como programadores, muitas vezes pode levar várias horas de testes, alterações de código, sobrescrições, exclusões, movimentações e renomeações de arquivos antes de descobrirmos que o método que estamos tentando usar para corrigir um problema é totalmente errado e o o código está mais quebrado do que quando começamos.

Como tal, o Controle de Origem é um enorme botão Desfazer para reverter o código para uma época anterior, quando a grama era verde e a comida era abundante.E não só isso, devido à forma como o controle de origem funciona, você ainda pode manter uma cópia do seu código quebrado, caso daqui a algumas semanas você queira consultá-lo novamente e escolher quaisquer boas ideias que surgiram dele .

Eu pessoalmente (embora possa ser chamado de exagero) uso uma versão gratuita de licença de usuário único do Source Gear Fortress (que é o produto de controle de origem do Vault com recursos de rastreamento de bugs).Acho a UI muito simples de usar, ela suporta tanto o modelo checkout > editar > checkin quanto o modelo editar > mesclar > commit.Porém, pode ser um pouco complicado de configurar, exigindo que você execute uma cópia local do ISS e do servidor SQL.Você pode tentar um programa menor, como os recomendados por outras respostas aqui.Veja o que você gosta e o que pode pagar.

Marcos disse:

git - muito quente desde que Linus mudou para ele

Só quero salientar que Linus não mudou para isso, Linus escreveu isto.

Se você estiver trabalhando sozinho em um ambiente Windows, então o Licença de usuário único para o Vault do SourceGear é gratuito.

Nós usamos e gostamos Mercurial.Ele segue um modelo distribuído – elimina parte da sensação de ter que “fazer check-in” do trabalho.Mozilla tem mudou para mercurial, o que é um bom sinal de que não irá desaparecer tão cedo.Uma desvantagem, na minha opinião, é que não existe uma GUI muito boa para isso.Se você se sentir confortável com a linha de comando, ela é muito útil.

Documentação mercurial Manual não oficial

Basta começar a usar o controle de origem, não importa o tipo que você usa.O que você usa não importa;é o uso dele que é importante

Como todo mundo, SC depende muito das suas necessidades, do seu orçamento, do seu ambiente, etc.

Na sua raiz, o controle de origem é projetado para fornecer um repositório central de todo o seu código e rastrear quem fez o que com ele e quando.Deve haver um histórico completo e você pode obter produtos que fazem registros completos de alterações, auditoria, controle de acesso e assim por diante...

Cada produto que está por aí começa a brilhar (por assim dizer) quando você começa a ver como deseja ou precisa incorporar SC em seu ambiente (seja seu código e documentos pessoais ou uma grande corporação).E à medida que as pessoas as usam, elas descobrem que a ferramenta tem limitações, então escrevem novas.O SVN nasceu das limitações que os criadores viram no CVS.Linus queria algo melhor para o kernel Linux, então agora temos idiota.

Eu diria que comece a usar um (algo como o SVN, que é muito popular e muito fácil de usar) e veja como funciona.Com o passar do tempo, você pode descobrir que precisa de alguma outra funcionalidade ou de interface com outros sistemas, portanto, pode precisar do SourceSafe ou de outra ferramenta.

O controle de origem é sempre importante e, embora você possa renumerar manualmente as versões dos arquivos PSD ou algo assim enquanto trabalha neles, você se esquecerá de executar esse script em lote uma ou duas vezes ou provavelmente esquecerá qual número foi com qual mudança.É aí que a maioria dessas ferramentas SC pode ajudar (desde que você faça check-in/check-out).

Veja também esta pergunta SO:

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