Dando continuidade ao post Como versionar projetos Django com o Mercurial, vamos dar uma pincelada nos funcionamentos básicos do Mercurial.
hg? Mas não era 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 <[email protected]>
Salve o arquivo… e estamos prontos para iniciar.
Primeiros passos…
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-à-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.
Altere, adicione e “comite”
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.
Compartilhando as suas produções
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:
- Eu vou dar o nome de “post-django-com-hg” ao repositório, fique a vontade para dar o nome que você desejar;
- Escolha o Python como linguagem;
- Coloque uma pequena descrição;
- Eu vou marcar a opção Issue tracking, caso haja algum problema com o código e vocês queiram sugerir melhorias.
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 push 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://[email protected]/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 😉
Referências
- Site oficial do projeto Mercurial
- Artigo na Wikipedia sobre Mercurial
- Artigo na Wikipedia sobre Mercúrio (o elemento químico)
- Mercurial Hg – Controlando as Versões do seu Software
- Mercurial: The Definitive Guide
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…
Fonte: Blog Klaus Laube
2 Comentários
Opa!
Bacana seu artigo! Sei que o que vou dizer não tem nada a ver contigo, mas existe um bug muito chato que todas as vezes que entro aqui no site, da crash no meu FF, Chrome ou IE.
É um bug em alguma coisa em flash.
Como desenvolvo alguns aplicativos utilizando Flex, o flashbug loga os erros pra mim.
Não sei se interessa à alguém, mas aqui vai o log 😉
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at com.google.analytics.campaign::CampaignTracker/_addIfNotEmpty()
at com.google.analytics.campaign::CampaignTracker/toTrackerString()
at com.google.analytics.campaign::CampaignManager/getCampaignInformation()
at com.google.analytics.v4::Tracker/_initData()
at com.google.analytics.v4::Tracker()
at com.google.analytics.components::FlashTracker/_trackerFactory()
at com.google.analytics.components::FlashTracker/_factory()
Abraços!
@Fred, Muito obrigado por notificar o problema. Já encaminhei para os responsáveis 😉