Controle de Versão - svn e mercurial

por Walter Cruz on 21/08/2007
in Programação

Há um tempo atrás, um amigo pediu para que eu escrevesse algo sobre o svn. Como eu enrolei, acabou que o ùltimo log fez isso por mim, com um tutorial básico sobre o svn bem descontraído. Não cobre coisas como externals e propriedades, mas já dá pra iniciar a usar o subversion sem muito grilo.

A maioria dos repositórios que eu uso são subversion (com exceção do b2evolution, que é CVS). Porém, semana passada eu tive contato com um outro tipo de repositório. O subversion e o CVS são variações do mesmo tema: um gerenciador de controle de versão centralizdo, onde as coisas estão todas num servidor, e todos voltam a ele.

Com o mercurial, que foi o SCM que eu testei, a coisa é diferente. Cada cópia de um repositório mercurial é ela mesma um repositório completo. Você pode enviar o seu código pra esse repositório cópia que ele não será propagado automaticamente para o repositório pai. Aliás, não há exatamente um repositório pai: se 2 programadores fazem o checkout de um repositório desse tipo, ambos os repositórios podem ser copiados por mais pessoas. Essa é a idéia de repositórios descentralizados.

Parece um pouco anárquica a idéia, mas é interessante. Além de manter o código fonte do projeto sobre controle de versão, você acaba mantendo o seu próprio código sobre um controle de versão também. Fez algma besteira no código? Não tem problema, isso não afetou o repositório original, apenas o seu. E como o Thiago Arrais fala em seu post sobre o assunto, os próprios usuários acabam por eleger um repositório como principal, que receberá o merge dos outros repositórios. Mas isso é apenas uma escolha dos usuários, eles não tem a obrigação de considerar esse ou aquele repositório como principal.

Uma idéia bacana, utilizada pelo darcs, git e mercurial. Um pouco complicada a princípio, mas confesso que me atrai bastante.

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

Sem feedback para esse post ainda

    Share Your Thoughts


    Seu endereço de e-mail não será revelado nesse site.

    Sua URL será exibida.
    PobreExcelente
    (Quebras de linha se tornam <br />)
    (Nome, e-mail & website)
    (Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))
    Subscribe to comments by email

    You can just use your OpenID to provide your name, e-mail and url.