Mercurial

Guia básico

Postado por Rafael Brandão em Sep. 13, 2023

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.

Referências