(Veja também Entendendo o Mercurial e Tutorial. Note que esta tradução pode estar um pouco defasada em relação à página original em inglês.)
Configurando o usuário
Por padrão o Mercurial utiliza um usuário no formato 'user@localhost' para os commits. Normalmente isso não significa nada. O melhor é configurar um endereço eletrônico correto no arquivo ~/.hgrc (ou em um sistema Windows %USERPROFILE%\mercurial.ini) adicionando linhas como as seguintes:
[ui] username = Nome do Autor <endereco@eletronico>
Trabalhando num projeto Mercurial existente
Se você possui a URL do repositório de um projeto (por exemplo http://selenic.com/hg), você pode obter uma cópia da seguinte forma:
$ hg clone http://selenic.com/hg
Isso irá criar um novo diretório chamado hg (por padrão), obter todo o histórico do projeto, e fazer o checkout do changeset mais recente (veja também Clone).
Configurando um novo projeto Mercurial
Comece criando o repositório:
$ cd project/ $ hg init # cria o diretorio .hg
O Mercurial vai procurar por um arquivo de nome .hgignore na raiz do seu repositório que contém um conjunto de padrões e expressões regulares para ignorar nos caminhos para os arquivos. Aqui está um exemplo de arquivo .hgignore:
syntax: glob *.orig *.rej *~ *.o tests/*.err *.class syntax: regexp .*\#.*\#$
Teste o seu arquivo .hgignore com o comando:
$ hg status # mostra todos os arquivos não ignorados
Isto irá listar todos os arquivos que não serão ignorados com um marcador '?' (não controlado). Edite o seu arquivo .hgignore até que apenas os arquivos que você quer controlar sejam listados com o comando status. Você deverá controlar seu arquivo .hgignore também! Mas você provavelmente não quer controlar arquivos gerados pelo seu processo de compilação e montagem. Quando estiver satisfeito, marque seus arquivos para adição ao repositório, e em seguida armazene no repositório (Commit):
$ hg add # adiciona todos os arquivos desconhecidos (marcados com '?') $ hg commit # armazena todas as mudanças, edita a entrada no changelog
Ramificação (Branching) e junção (merging)
$ hg clone project project-work # cria um novo branch $ cd project-work $ <faça uma mudança qualquer> $ hg commit $ cd ../project $ hg pull ../project-work # obtenha (pull) changesets do project-work $ hg merge # merge do novo tip do project-work no seu diretorio de trabalho $ hg commit # faça o commit do resultado do merge
Exportando um patch
(faça as mudanças) $ hg commit $ hg export tip # exporta o commit mais recente
Suporte a Rede
# clone do repositório principal do Mercurial foo$ hg clone http://selenic.com/hg/ foo$ cd hg # faça uma atualização (update) do repositório existente foo$ hg pull http://selenic.com/hg/ # exporte seu repositório corrente via HTTP com uma interface navegável foo$ hg serve -n "My repo" -p 80 # publique as mudanças para o repositório remoto via SSH foo$ hg push ssh://user@example.com/hg/