Mercurial

editar
  • O que é

É uma ferramenta gratuita para controle de versão, oferece o poder de lidar de forma eficiente com projetos de qualquer tamanho. É realmente distribuído, de forma que cada desenvolvedor tem uma cópia completa do histórico do desenvolvimento de forma local, não necessita de conexão com a internet para trabalhar.

O Mercurial é feito em Python, e como requisito é necessário ter Python 2.4 ou superior instalado.

Como instalar

editar
  • Para sistemas operacionais Windows

É possível fazer o download na página web: https://www.mercurial-scm.org/downloads

  • Para sistemas Linux
# Debian/Ubuntu 
$ sudo apt-get install mercurial 
  • Verificando a versão do Mercurial
$ hg version

O relatório apresentado é algo semelhante à este:

freemanpivo@HomeLinux ~ $ hg version
Mercurial Distributed SCM (version 3.4)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2015 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Se tudo ocorreu de forma positiva, siga para o próximo passo. Caso contrário tente reinstalar o Mercurial.

  • Verificando a instalação do Mercurial
$ hg debuginstall

Seu terminal irá apresentar um relatório se tudo foi configurado corretamente, e em quais locais de seu computador encontram-se os arquivos de instalação e configuração do software.

freemanpivo@HomeLinux ~ $ hg debuginstall
checking encoding (UTF-8)...
checking Python executable (/usr/bin/python)
checking Python version (2.7.6)
checking Python lib (/usr/lib/python2.7)...
checking installed modules (/usr/lib/python2.7/dist-packages/mercurial)...
checking templates (/usr/share/mercurial/templates)...
checking commit editor...
checking username...
 no username supplied
 (specify a username in your configuration file)
1 problems detected, please check your install!

Note que há um erro, no qual o nome do utilizador (username) não foi especificado. Para corrigir isso, basta criar um arquivo na pasta HOME de seu Linux e editá-lo.

user@Linux ~ $ touch .hgrc
user@Linux ~ $ vim .hgrc

Após abrir o arquivo utilizando o vim configure o arquivo conforme o exemplo abaixo:

[ui]
username = PrimeiroNome SegundoNome Sobrenome <usuario@dominio.net>

Comandos básicos

editar

Para criar um repositório local basta criar uma pasta para iniciar seu projeto ou em uma pasta já com o projeto digitar no terminal

$ hg init

Ao adicionar os arquivos ( caso a pasta esteja vazia ) ou se já estiver com arquivos na pasta o comando

para clonar um repositório existente para o seu repositório local basta utilizar o clone

$ hg clone link
$ hg status

mostra os arquivos alterados no repositório. Caso os arquivos não estejam adicionados um ponto de interrogação(?) ficará à esquerda do nome do arquivo.

$ hg add "nome do arquivo"

adiciona o arquivo ao próximo commit. Para adicionar todos os arquivos para o próximo commit basta digitar o comando

$ hg add

Com o comando abaixo é possível ver os commits no repositório.

$ hg log 

Caso haja necessidade de reverter uma alteração feita e commitada basta utilizar o comando

$ hg revert --all

A tag "--all" significa que todos os arquivos vão retorna ao último estado.

Para verificar as alterações feitas em um arquivo, basta utilizar o diff, as linhas removidas, adicionadas ou alteradas serão mostradas.

 $ hg diff "nome do arquivo" 

Para retirar um arquivo do repositório basta utilizar o comando remove

$ hg remove "Nome do arquivo" 

Ao digitar o comando status, aparecerá um "R" à esquerda do nome do arquivo, isso significa que no próximo commit o arquivo será removido.

Para criar uma nova branch no mercurial basta utilizar o comando branch e colocar o nome da nova branch entre aspas.

$ hg branch "Nome da Branch"

para checar em qual branch vocês está trabalhando, basta utilizar o comando branch

$ hg branch

Para atualizar um repositório clonado basta utilizar o comando pull

$ hg pull

Para atualizar mudanças locais com o repositório remoto basta utilizar o comando push, no entanto, para que este comando funcione corretamente é necessário configurar seu repositório.

Vamos desde o princípio, onde se define um repositório até o comando push em si:

freemanpivo@HomeLinux ~/mercurial $ mkdir testrepo
freemanpivo@HomeLinux ~/mercurial $ cd testrepo/
freemanpivo@HomeLinux ~/mercurial/testrepo $ hg init
freemanpivo@HomeLinux ~/mercurial/testrepo $ hg st
? test.c
freemanpivo@HomeLinux ~/mercurial/testrepo $ hg add test.c 
freemanpivo@HomeLinux ~/mercurial/testrepo $ hg st
A test.c
freemanpivo@HomeLinux ~/mercurial/testrepo $ hg commit -m "Initial Commit"

Agora executaremos o comando push, sem o arquivo de configuração do mesmo:

freemanpivo@HomeLinux ~/mercurial/testrepo $ hg push
pushing to default-push
abort: default repository not configured!
(see the "path" section in "hg help config")

Para solucionar este erro, basta editar o arquivo hgrc, dentro da pasta .hg:

freemanpivo@HomeLinux ~/mercurial/testrepo $ vim .hg/hgrc

E adicionar as seguintes linhas ao arquivo de acordo com seu repositório:

[web]
push_ssl=False
allow_push=*

[paths]
default = http://domain:8000
default-push = ../myrepofolder

Agora o comando push está configurado corretamente de acordo com seu repositório.

Repositórios remotos para Mercurial

editar

Alioth

Bitbucket

CodePlex

KForge 

Kiln

Pikacode 

SourceForge.net

Projetos que utilizam Mercurial

editar

Apache OpenOffice - Suíte de produtividade livre e aberto.

OpenJDK - Java open source code.

Python - Linguagem de programação Interpretada.

TortoiseHg - Interface gráfica para Mercurial.

TeXstudio - Editor e compilador de arquivos LaTeX.

Referências

editar

Mercurial

Mercurial: Projects Using Mercurial

Mercurial: The Definitive Guide

HgInit