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

votos
21

Após ser informado pelo menos 10 pessoas no SO que controle de versão era uma coisa boa, mesmo que seja só eu agora tenho uma pergunta de acompanhamento.

Qual é a diferença entre todos os diferentes tipos de controle de versão e há um guia que ninguém sabe de para controle de versão que é muito simples e fácil de entender?

Publicado 06/08/2008 em 19:58
fonte usuário
Em outras línguas...                            


13 respostas

votos
20

Parece que estamos na idade de ouro de controle de versão, com uma tonelada de escolhas, todos os que têm os seus prós e contras.

Aqui estão os que eu vejo mais utilizado:

  • svn - atualmente o código aberto mais popular?
  • git - muito quente desde Linus ligado a ele
  • mercuriais - algumas pessoas inteligentes que eu conheço jurar por ele
  • cvs - a toda a gente está a mudança de
  • forçosamente - IMHO, as melhores características, mas não é open source. A licença de dois usuário é livre, no entanto.
  • Visual SourceSafe - Eu não sou muito no mundo da Microsoft, então eu não tenho nenhuma idéia sobre este, outro do que as pessoas gostam de pano nele como eles pano sobre tudo, desde Microsoft.
  • SCCS - por interesse histórico que mencionar isto, o grande-grandaddy de muitos dos acima
  • RCS - eo grandaddy de muitos dos acima

Minha recomendação: você está mais seguro com qualquer git, svn ou forçosamente, uma vez que muitas pessoas usá-los, eles são multiplataforma, tem boas interfaces gráficas, você pode comprar livros sobre eles, etc.

Não se consideram cvs, SCCS, RCS, eles são antigos.

O bom é que, desde que seus projetos será relativamente pequeno, você será capaz de mover o código para um novo sistema, uma vez que você está mais experiente e decidir que quer trabalhar com outro sistema.

Respondeu 06/08/2008 em 20:10
fonte usuário

votos
15

Eric Sink tem uma boa visão geral do controle de origem . Existem também alguns existentes perguntas aqui no SO.

Respondeu 06/08/2008 em 20:02
fonte usuário

votos
6

Para todos apenas começando usando controle de versão:

Por favor, não use git (ou hg ou bzr) por causa da campanha publicitária

Use git (ou hg ou bzr), porque eles são as melhores ferramentas para o gerenciamento de código fonte do que SVN.

Eu usei SVN por alguns anos no trabalho, e transferidas para git 6 meses atrás. Sem aprender SVN primeiro eu estaria totalmente perdido quando se trata de usar um DVCS.

Para as pessoas apenas começando com controle de versão:

  • Comece fazendo o download SVN
  • Saiba por que você precisa de controle de versão
  • Aprenda a cometer, check-out, ramo
  • Saiba por que a fusão no SVN é uma dor

Em seguida, mudar para um DVCS e aprender:

  • Como clonar / ramo / commit
  • Como é fácil de fundir suas filiais volta (ir ramo louco!)
  • Como é fácil para reescrever cometer história e manter seus ramos
    -se atualizado com a linha principal ( git rebase -i ,)
  • Como publicar as suas alterações para que outros possam beneficiar

TLDR; multidão:

Comece com SVN e aprender o básico, em seguida, mudar para um DVCS.

Respondeu 06/08/2008 em 20:34
fonte usuário

votos
5

Gostaria de começar com:

Em seguida, uma vez que você ler sobre ele, baixar e instalar o SVN , TortoiseSVN e roçar os primeiros capítulos do livro e começar.

Respondeu 06/08/2008 em 20:02
fonte usuário

votos
5

Version Control é essencial ao desenvolvimento, mesmo se você estiver trabalhando sozinho porque protege-lo de si mesmo. Se você cometer um erro, é uma simples questão de reversão para uma versão anterior do seu código que você sabe que funciona. Isso também libera-lo para explorar e experimentar com seu código porque você está livre de ter que se preocupar se o que você está fazendo é reversível ou não. Existem dois grandes ramos de Sistemas de Controle de Versão (VCS), centralizados e distribuídos.

VCS centralizados são baseados na utilização de um servidor central, onde todos "check-out" um projeto, trabalha sobre ele, e "compromete" suas mudanças de volta para o servidor para qualquer outra pessoa de usar. A principal centralizado VCS são CVS e SVN. Ambos têm sido fortemente criticado porque "fusão" "ramos" é extremamente doloroso com eles. [TODO: escrever explicação sobre o que são ramos e por fusão é difícil com o CVS e SVN]

VCS distribuídos deixar todo mundo tem seu próprio servidor, onde você pode "puxar" as alterações de outras pessoas e "empurrar" muda para um servidor. Os VCS distribuídos mais comuns são Git e Mercurial. [TODO: escrever mais sobre VCS Distributed]

Se você está trabalhando em um projeto que eu fortemente recomendo usar um VCS distribuído. Eu recomendo Git porque é incrivelmente rápido, mas é tem sido criticada por ser demasiado difícil de usar. Se você não se importa com uma BitKeeper produto comercial é supostamente fácil de usar.

Respondeu 06/08/2008 em 20:00
fonte usuário

votos
2

Mark disse:

git - muito quente desde Linus ligado a ele

Eu só quero salientar que Linus não mudar para ele, Linus escreveu ele.

Respondeu 07/08/2008 em 00:33
fonte usuário

votos
2

A resposta é simples, você gosta de desfazer botões? A resposta é, naturalmente, sim, porque nós ser tão humanos cometem erros o tempo todo.

Como programadores, seu frequentemente o caso, porém, que pode levar várias horas de testes, alterações de código, substitui, exclusões movimentos de arquivo e renomeia antes de trabalhar para fora o método que está tentando usar para corrigir um problema é inteiramente o errado eo código é mais quebrado do que quando começamos.

Como tal, de controle de origem é um botão enorme Undo para reverter o código para um momento anterior quando a grama era verde ea comida abundante. E não só isso, por causa de como funciona o controle de origem, você ainda pode manter uma cópia de seu código quebrado, no caso de algumas semanas para baixo da linha que deseja se referir a ele novamente e cereja escolher qualquer boas idéias que veio de fora .

Eu, pessoalmente, (apesar de que poderia ser chamado de um exagero) usar uma versão de licença de usuário único livre de Fonte engrenagem Fortress (que é o seu produto de controle de origem Vault com recursos de rastreamento de bugs). Acho que a UI realmente simples de usar, ele suporta tanto o check-out> Editar> modelo de check-in e de edição> merge> cometer modelo. Ele pode ser um pouco complicado para configurar, porém, exigindo-lhe para executar uma cópia local do ISS e do servidor SQL. Você pode querer experimentar um programa menor, como os recomendados por outros respostas aqui. Veja o que você gosta eo que você pode pagar.

Respondeu 07/08/2008 em 00:31
fonte usuário

votos
2

A resposta a outra pergunta também se aplica aqui, o mais importante

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

Basta começar a usá-lo

Sua resposta entra em mais detalhes, e eu não quero ser acusado de plaigerism então dê uma olhada.

Respondeu 06/08/2008 em 20:29
fonte usuário

votos
1

Nós usamos e como Mercurial . Segue-se um modelo distribuído - que elimina alguma da sensação de ter de "check-in" de trabalho. Mozilla mudou-se para Mercurial , que é um bom sinal de que ele não está indo para ir embora tão cedo. Um con, na minha opinião, é que não é uma boa GUI para ele. Se você estiver confortável com a linha de comando, no entanto, é bastante acessível.

Documentação Mercurial manual Unofficial

Respondeu 06/08/2008 em 20:59
fonte usuário

votos
1

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

Respondeu 06/08/2008 em 20:15
fonte usuário

votos
0

Veja também esta pergunta SO:

Respondeu 31/05/2009 em 10:34
fonte usuário

votos
0

Como todo mundo, SC é realmente dependente de suas necessidades, seu orçamento, o seu ambiente, etc.

Em sua raiz, controle de origem é projetado para fornecer um repositório central de todo o seu código e rastrear quem fez o quê a ele quando. Deve haver uma história completa, e você pode obter produtos que fazem changelogs completos, auditoria, controle de acesso, e assim por diante ...

Cada produto que está lá fora começa a brilhar (por assim dizer) quando você começa a olhar como você quer ou precisa incorporar SC em seu ambiente (se é o seu código e documentos pessoais ou de grandes corporações). E como as pessoas usá-los, eles descobrem que a ferramenta tem limitações, para que as pessoas escrever novos. SVN nasceu de limitações que os criadores viram com CVS. Linus queria algo melhor para o kernel Linux, então agora temos git .

Eu diria que começar a usar um (algo como SVN que é muito popular e muito fácil de usar) e ver como ele vai. Enquanto o tempo avança você pode achar que você precisa de alguma outra funcionalidade, ou a necessidade de interface com outros sistemas, assim você pode precisar SourceSafe ou outra ferramenta.

controle de origem é sempre importante, e enquanto você pode sair com manualmente re-numeração versões de arquivos PSD ou algo como você trabalha sobre eles, você vai se esqueça de executar esse script em lotes uma ou duas vezes, ou susceptíveis esquecer qual número foi com o qual mudar. É aí que a maioria dessas ferramentas SC pode ajudar (desde que você check-in / check-out).

Respondeu 07/10/2008 em 13:36
fonte usuário

votos
0

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

Respondeu 17/08/2008 em 03:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more