Utilizador:Geovannioj

    Fonte: Wikiversidade

    Mercurial[editar | editar código-fonte]

    • 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 | editar código-fonte]

    • 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 | editar código-fonte]

    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 | editar código-fonte]

    Alioth

    Bitbucket

    CodePlex

    KForge 

    Kiln

    Pikacode 

    SourceForge.net

    Projetos que utilizam Mercurial[editar | editar código-fonte]

    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 | editar código-fonte]

    Mercurial

    Mercurial: Projects Using Mercurial

    Mercurial: The Definitive Guide

    HgInit