Se tu desenvolves software, independente de qual seja a linguagem, então deves fazer o controle das modificações de algum modo.
Quando estava iniciando na programação, o controle que eu fazia era bem primitivo. Se eu tivesse apenas um arquivo, após finalizar as alterações, eu salvava uma cópia do mesmo com o seguinte formato:
<nome>.<extensão><anomêsdia_horaminuto>.
Por exemplo, se eu tivesse um arquivo chamado meu
arquivo.c e tivesse finalizado uma alteração do arquivo no dia 10/01/2008 às 18:30h, a cópia do mesmo teria o nome
arquivo.c_20081001_1830.
Se por acaso fossem vários arquivos correlacionados, ao invés de copiar os arquivos em si, eu aplicava este método à pasta.
Por exemplo, se eu tivesse uma pasta chamada
meuprograma e dentro desta pasta eu tivesse os arquivos
meu_fonte.c,
meu_fonte.h e
LEIAME.TXT, após concluir as alterações nestes arquivos,supondo que elas tivessem ocorrido no dia 11/01/2008 às 09:30h, seria gerada uma cópia da pasta chamada
meuprograma_20080111_0930.
Com o passar do tempo este tipo de controle torna-se ineficiente.
- Por quê? Porque eu não conseguia saber, por exemplo, que modificações foram feitas em que versão das cópias. Se eu tivesse um trabalho compartilhado com um ou mais colegas, tornava-se difícil dividir as tarefas e depois unir os trabalhos.
Procurando uma solução para estes problemas, encontrei o CVS. Durante anos ele foi uma ferramenta indispensável no meu trabalho. O CVS não evolui como deveria e, com o tempo, foi substituído com muitas vantagens pelo
Subversion.
O Subversion, bem como o CVS e outros programas de controle de versão, possuem um repositório centralizado. Isto tem inumeras vantagens.
Um dia desses, meu amigo
Wanderley me falou de um sistema de controle de versões (SCM) com repositório distribuído.
- Repositório distribuído? - Perguntei espantado. - Isso deve ser uma
m...
Após ouvir atentamente (mesmo achando que seria perda de tempo), mudei de idéia e resolvi experimentar este programa. Afinal, o Wanderley é um programador muito experiente e não iria dar seu aval para uma solução
meia-boca.
O
Mercurial (este é o seu nome) é um sistema de controle de versões muito leve e ocupa pouco espaço disco.
Em SCMs com repositório centralizado, todos os arquivos ficam em um único local (servidor), sendo que os desenvolvedores baixam uma cópia dos mesmos para o seu diretório de trabalho. Certamente isto não é novidade para ti.
O Mercurial, por usar repositório distribuído, não possui um servidor central. Cada desenvolvedor tem ao mesmo tempo o repositório e o diretório de trabalho.
- Não parece nem seguro, nem prático. E qual a vantagem disso?
É seguro. O projeto já está bem estável e a cada release vários bugs são corrigidos .
É prático, pois por meio de comandos simples de exportação e importação podemos sincronizar nosso repositório com o repositório de outros desenvolvedores.
Além disso, o Mercurial possui várias extensões / contribuições da comunidade que ampliam e facilitam seu uso. Por exemplo, sua integração com o
Bugzilla.
A vantagem de se utilizar o repositório distribuido verifica-se quando tu tens arquivos ou projetos que desenvolves na tua casa, no trabalho, nos computadores da faculdade, etc e não tens como instalar o Subversion, por exemplo, para controlar a versão dos mesmos (ou não tens acesso à rede).
Usando o Mercurial, podes manter o controle de versões onde for necessário, sem problemas. Não é preciso nem do acesso à rede. É só executares uma exportação / importação das modificações e pronto.
Isso sem abrir mão de controle de versões, habilidade de efetuar os
diffs, ver logs, uso de tags, entre outras coisas que já nos acostumamos com o Subversion.
Já estou utilizando o Mercurial em 3 projetos (faz menos de um mês que comecei a usá-lo) e estou completamente satisfeito.
Estou pensando em traduzir para o Português os tutorias que se encontram no site oficial como uma forma de ajudar a ampliar o seu número de usuários.
Se tu usas o Subversion, o CVS ou outro sistema de versões, experimente o Mercurial. Com toda a certeza vais gostar muito de trabalhar com ele.
E se tu ainda não usas nenhum sistema destes, já passou da hora de começares. Vá no site do
Mercurial e comece a utilizá-lo. Com o tutorial fornecido, em menos de 20 minutos já estarás dominando o programa.
Tu não vais te arrepender.