Mercurial

Autor: Matt Mackall
Página: http://www.selenic.com/mercurial/
Licença: GPLv2
Plataformas suportadas: Linux, *BSD, Mac OS, Solaris, Windows

Mercurial é um sistema para gerenciamento de versões distribuído utilizado por alguns subsistemas do kernel e projetos opensource.

Todos os comandos começam com hg, uma referência ao elemento químico mercúrio

Instalação:

Fedora:
shell> sudo yum install mercurial

Debian/Ubuntu/Kubuntu:
shell> sudo apt-get install mercurial

Principais Comandos:

   clone, commit, status, add, remove, diff, extdiff

Clone:

Cria uma cópia de repositório em um diretório

Exemplo:

shell> hg clone http://linuxtv.org/hg/v4l-dvb
shell> ls v4l-dvb

Commit:

Envia as alterações para o repositório local

Exemplo:

shell> vi arquivo.c (algumas alterações ocorreram neste momento)
shell> hg commit [arquivo]

Status:

Exibe o status dos arquivos do repositório local

Exemplo:

shell> hg status [arquivo]
M arquivo

Os códigos de status são:

M = Arquivo alterado (modified)
A = Adicionado
C = Sem alterações (clean) (Quando usa-se o parâmetro -c)
R = Arquivo removido
! = Arquivo removido mas continua no repositório
? = Arquivo não desconhecido
I = Arquivo ignorado
Sem retorno = Não houveram alterações no arquivo

Add:

Sinaliza os arquivos que serão adicionados ao repositório local

Exemplo::

shell> hg add arquivo
shell> hg commit (envia as alterações para o repositório local)

Remove:

Sinaliza os arquivos que serão removidos do repositório local

Exemplo:

shell> hg remove arquivo
shell> hg commit (envia as alterações para o repositório local)

Diff:

Exibe as alterações de um determinado arquivo

Exemplo:

shell> hg diff arquivo

Exemplo para visualizar alterações incluindo arquivos binários:
shell> hg diff -a

Opções:
-r = revisão

shell>hg diff -r revisão arquivo

ExtDiff:

A extensão extdiff permite especificar a ferramenta que sera utilizada para visualizar as alterações feitas em um determinado programa.

Por padrão, a extensão extdiff utiliza a ferramenta diff para comparar os arquivos e validar se houveram alterações.
Porém, é possível facilmente alterar a ferramenta de comparação de código, por exemplo de diff para kdiff3.

1) Adicione a extensão ao hgrc padrão ou ao .hgrc do local

Exemplo 1:

shell> vi /etc/mercurial/hgrc

Exemplo 2:

shell>vi ~/.hgrc

2) Adicione as linhas:

[extensions]
extdiff =

Neste momento será possível especificar a ferramenta para diffs. No exemplo abaixo iremos passar o programa kdiff3 como parâmetro:

Exemplo:

shell> hg extdiff -p /usr/bin/kdiff3

Opções:

-p = Ferramenta (program) por padrão é utilizado a ferramenta diff
-o = parâmetros (options) por padrão é passado ao extdiff as opções -Npru

Alias:

Ao invés de digitar hg extdiff -p /usr/bin/kdiff3 podemos criar um alias para digitar apenas:

shell> hg kdiff3

Adicione no seu arquivo ~/.hgrc local ou no hgrc geral /etc/mercurial/hgrc

[extensions]
extdiff =

[extdiff]
cmd.kdiff3 = kdiff3

# Caso queira passar opções, remova o comentário e adicione abaixo
# opts.kdiff3 =

Agora já é possível utilizar o novo comando

shell>hg kdiff3