Controle de Versão
com Mercurial
Paulo Mattos
Olympya Software
Controle de Versão
•
Alguém já sobrescreveu o código de outra pessoa e perdeu as
alterações?
•
Não sabe quais, quem e quando foram efetuadas alterações em
um programa?
•
Tem dificuldade em recuperar o código de uma versão anterior?
•
Tem problemas em manter variações do sistema ao mesmo
tempo?
Se teve um sim você necessita
urgentemente de um sistema de
controle de versão!
…controle de versão evita isso 😇
Centralizado ou Distribuido?
•
•
Controle de versão centralizado •
um único repositório e várias cópias de trabalho
•
comunicação apenas através do repositório central
Controle de versão distribuído (DVCS)
•
cada desenvolvedor possui um repositório próprio
•
•
é acoplado a uma área de trabalho
comunicação flexível entre repositórios
“This is possibly the biggest advance in
software development technology in 10 years…
I’d rather go back to C++ before I gave up on
Mercurial.”
Joel Spolsky
Fog Creek Software
Filosofia do Mercurial
•
•
•
Linha de comando do Mercurial é:
•
estável
•
elegante
•
rica em recursos
Simplicidade resulta em:
•
documentação clara & objetiva
•
é fácil encontrar o que você estiver procurando
•
hg help"
Histórico do projeto é permanente & imutável
Cópia de Trabalho
•
Cada desenvolvedor possui
clone completo do repositório
•
Arquivos são editados na
cópia de trabalho (working
directory)
•
Conteúdo da cópia de
trabalho é baseada em
determinada revisão do
repositório (ex, #4)
Comandos
Básicos
•
commit & update servem
para salvar e recuperar
modificação entre repositório
local e cópia de trabalho
•
push & pull são usados para
comunicação entre
repositórios
Outros comandos
Mercurial vs Subversion
criando seu 1º repositório via hg init…
..compartilhe repositório com hg serve
1
repositórios da equipe
(inicialmente vazios)
2
Joel realiza dois commits…
3
…enviados para repositório
central via hg push!
1
modificações concorrentes…
2
…merge será necessário!
3
merge resulta em
novo commit
…combinando tudo isso 😧
Tutorial completo do
Mercurial
•
Explore esses comandos e outros em:
www.hginit.com
•
Por quê Mercurial é melhor que Git?
Questões em aberto…
1. Onde devo hospedar meu repositório central?
•
segurança & backups são mandatórios!
•
acesso remoto é vital para times distribuídos geograficamente
2. Commits não deveriam ser integrados com software de gestão de
projeto?
•
visibilidade para gerente de projeto
3. Código modificado — via commits — não deveria ser submetidos a
revisões por demais membros da equipe?
•
técnica complementar para detecção de bugs ainda em
desenvolvimento
Solução: Kiln!
•
Desenvolvido pela Fog Creek Software
•
Hospedagem dedicada de repositórios Mercurial (1: 👍)
•
interface simples porém poderosa
•
controle de acesso por usuário e/ou grupo
•
Excelente integração com FogBugz (2: 👍)
•
Inclui sistema completo de code review (3: 👍)
•
•
permite fácil revisão das modificações feitas pelo time
Bônus: suporte simultâneo para repositórios Mercurial e Git
•
única ferramenta disponível com esta capacidade
Kiln: Experimente…
•
É gratuito por 30 dias
•
Começe seu trial aqui
Dúvidas?
[email protected]
Download

DVCS com Mercurial.key