O que é?
O Mercurial é uma ferramenta gratuita e distribuída de gerenciamento de código - fonte.
Fluxo de trabalho
Adicionando o nome do usuário
Abra o arquivo ~/.hgrc (ou mercurial.ini na pasta inicial do Windows) com um editor de texto e adicione a seção ui (interação do usuário) com seu nome de usuário.
[ui]
username = João Silva <eu@joaosilva.com.br>
Iniciando um projeto
Para criar um repositório
hg init projeto
ou inicie o repositório a partir de uma pasta existente com arquivos
cd projeto
hg init
Adicionando arquivos e rastreando-os
cd projeto
echo 'print("Olá")' > ola.txt
hg add
hg commit
saída
adding ola.txt
seu editor padrão será aberto, insira a mensagem de confirmação, salve e feche o editor.
Confirmação inicial.
HG: Enter commit message. Lines beginning with 'HG:' are removed.
HG: Leave message empty to abort commit.
HG: --
HG: user: João Silva <eu@joaosilva.com.br>
HG: branch 'default'
HG: added ola.txt
Para evitar a mudança para um editor, você também pode inserir a mensagem de confirmação(commit) na linha de comando hg commit -m “Sua mensagem de confirmação”. Em vez de hg commit você também pode usar a abreviação hg ci.
Histórico
hg log
saída
changeset: 0:a5ecbf5799c8
user: João Silva
date: Wed Aug 16 16:00:00 2023 +0100
summary: Confirmação inicial.
Por padrão, o histórico mostra apenas a primeira linha da mensagem de confirmação(commit). Para mostrar a mensagem completa, use hg log -v.
Salvando alterações
echo 'print("Olá Mundo!")' > ola.txt
Verificando situação dos arquivos
hg status
saída
M ola.txt
Verificando alteração
hg diff
saída
diff --git a/ola.txt b/ola.txt
--- a/ola.py
+++ b/ola.py
@@ -1,1 +1,1 @@
-print("Olá")
+print("Olá Mundo!")
Salvando alteração
hg commit -m "Alterado texto de Olá para Olá Mundo!"
histórico
changeset: 1:487d7a20ccbc
user: João Silva
date: Wed Aug 16 16:10:00 2023 +0100
summary: Alterado texto de Olá para Olá Mundo!
changeset: 0:a5ecbf5799c8
user: João Silva
date: Wed Aug 16 16:00:00 2023 +0100
summary: Confirmação inicial.
Revisão
Navegando por revisões
hg update 1
Para atualizar para a revisão mais recente, você pode usar tip como nome da revisão. Em vez de hg update você também pode usar a abreviação hg up.
Fazendo mesclagem
hg merge
Resolvendo conflitos
Liste os arquivos com conflito
hg resolve --list
e então resolva um por um
hg resolve arquivo_com_conflito
O resolve tenta mesclar novamente, mas caso seja necessário, resolva manualmente e marque o arquivo como resolvido
hg resolve --mark arquivo_com_conflito
quando resolver todos os conflitos confirme as alterações(commit).
Clones
hg clone projeto recurso1
cd recurso1
echo 'print("Olá recurso 1")' > ola.txt
hg commit -m "Alterado texto de Olá Mundo! para Olá recurso 1"
Verificando alteração
cd ../projeto
hg incoming ../recurso1
Puxando alterações
hg pull ../recurso1
Reversão
Para desfazer a útima operação que você adicionou algo ao seu histórico
hg rollback
e confirme(commit).
Para mais informações você pode usar o comando hg help.