Dando continuidade ao post Como versionar projetos Django com o Mercurial, e a série Montando seu ambiente de desenvolvimento Django no Linux, vamos dar uma pincelada nos funcionamentos básicos do Mercurial.
Mercury em português significa mercúrio (nenhuma novidade até aqui),
que é um elemento químico com o símbolo Hg
e o número atômico 80
(assim disse a Wikipedia (: ). É devido a isso que você utilizará
o Mercurial em linha de comando através de comandos iniciados por
hg
.
Antes de iniciarmos, vamos dizer ao Mercurial quem nós somos. Abra o
arquivo .hgrc
do seu home
:
$ vim ~/.hgrc
É fundamental que nossos commits estejam marcados com nosso nome, e um e-mail para contato. Vamos escrever estas duas informações neste arquivo:
[ui]
username = seu nome < seuemail@provedor.com >
Salve o arquivo, e estamos prontos para iniciar.
Os passos que vou exemplificar aqui não são muito diferentes dos que você encontrará na página oficial do Mercurial. Preguiça minha? Talvez… mas você verá que usar o Mercurial é extremamente simples! As dificuldades são as exceções do dia a dia.
Para deixar o exemplo mais interessante, vamos utilizar o virtualenv. Dúvidas? Confira o post Python, Django e virtualenv e visualize aonde pretendemos chegar:
$ cd ˜/Projetos/
$ virtualenv DjangoComHG --no-site-packages
$ cd DjangoComHG
Agora sim, vamos criar um projeto através da seguinte expressão:
$ hg init django-com-hg
Projeto criado… vamos partir para as tarefas mais comuns no Mercurial.
O Mercurial é DVCS, isto quer dizer que, quando você clonar um repositório remoto você terá uma cópia exata dele em seu computador. Logo, as alterações que você “persistir” estarão disponíveis apenas na sua cópia local. Pode parecer um pouco confuso, mas com o tempo faz todo o sentido.
Para o primeiro commit (persistir nossas alterações localmente)
escreva um arquivo .hgignore
(saiba mais do que se trata) e um
arquivo README
:
$ cd django-com-hg/
$ ls -a
.hg .hgignore README
A pasta .hg
na verdade é quem vai identificar e armazenar todas as
informações do nosso projeto. Sem ela, você deixa de ter o controle
sobre as versões dos arquivos e subpastas do projeto.
Execute o comando hg status
e veja o que aparece… acredito que o
resultado seja auto-sugestivo. O Mercurial ainda não sabe o que fazer
com os arquivos no projeto, portanto diremos a ele que queremos
versionar estes arquivos:
$ hg add .hgignore README
Uma nova execução do hg status
vai apontar que os arquivos foram
marcados para adição, porém, ainda não foram adicionados. Você vai
confirmar está operação através do comando commit
:
$ hg commit -m "Primeiro commit com .hgignore"
O parâmetro -m
serve para passarmos uma mensagem de descrição do
commit
que estamos fazendo. Isto facilita na leitura do log de
commits realizados:
$ hg log
Estes serão os comandos que provavelmente você usará constantemente enquanto desenvolve.
Se você ainda não tem uma conta no Bitbucket, essa é uma grande oportunidade para fazer uma.
Vamos criar um repositório para praticarmos o comando push
. No
Bitbucket:
No repositório local vamos utilizar o comando push
com o endereço do
repositório no Bitbucket. Isso enviará todas as alterações que
persistidas em nosso repositório local para o repositório remoto,
mesclando-as com as contribuições de outros usuários envolvidos no
projeto:
$ hg push https://bitbucket.org/kplaube/post-django-com-hg
Lembre-se de mudar o endereço acima para o endereço do seu repositório no Bitbucket. Visite a página do seu repositório e veja o que aconteceu… bacana, não?
Mas dessa forma, teremos que sempre executar o comando pus
h
informando o endereço do repositório. Vamos deixar esta tarefa mais
simples editando o arquivo hgrc
dentro da pasta .hg
do projeto:
$ cd ~/Projetos/DjangoComHG/django-com-hg/
$ vim .hg/hgrc
Coloque o seguinte:
[paths]
default = https://kplaube@bitbucket.org/kplaube/post-django-com-hg
Lembre-se de mudar o endereço acima para o endereço do seu repositório no Bitbucket.
Pronto! Quando você for “pushear” não precisará mais informar o endereço do repositório remoto.
Altere alguns arquivos… commit
. Adicione alguns arquivos…
commit
. Ao final do dia, dê um push
e deixe o resto da equipe
saber o que você fez ;)
No próximo post, vamos concluir a trilogia mostrando uma forma bacana de utilizar o Mercurial para versionar seus projetos Django.
Até a próxima…