Este documento presenta una introducción a Mercurial, un sistema de control de versiones distribuido. Explica conceptos básicos como qué es el control de versiones y sus beneficios. Luego describe características clave de Mercurial como su portabilidad, simplicidad y licencia de código abierto. También cubre temas como cómo instalar y usar Mercurial, trabajar con otros desarrolladores y configurar acciones automatizadas mediante hooks.
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
Mercurial
1. Mercurial
ı ´
La v´a facil
´
Igor Tamara
igor@tamarapatino.org
CPCO
Junio 30 de 2011
2. Contenidos
1 ´
Informacion Previa
2 ´
¿Como uso mercurial?
3 ´
¿Como trabajo con otros?
4 Temas ulteriores
5 Hacia el fin
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 2 / 25
3. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
4. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
5. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
¿Cuando hice el
cambio?
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
6. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
¿Cuando hice el
cambio?
´ ´
¿Quien hizo que?
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
7. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
¿Cuando hice el
cambio?
´ ´
¿Quien hizo que?
´ ´ ´
¿Cuando cambio quien?
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
8. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
¿Cuando hice el
cambio?
´ ´
¿Quien hizo que?
´ ´ ´
¿Cuando cambio quien?
Antes estaba mejor
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
9. ´
Informacion Previa
´
¿Que es el control de versiones?
Ahorrar pesadillas
No ten´a backup ;(
ı
Yo lo hab´a hecho
ı
alguna vez
´
¿Cuando hice el
cambio?
´ ´
¿Quien hizo que?
´ ´ ´
¿Cuando cambio quien?
Antes estaba mejor
´
¿Que hemos hecho?
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 3 / 25
10. ´
Informacion Previa
´
¿A Quien le sirve el CV?
Mi(Individual)
Figura: Repositorio de Python usando
Mercurial
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 4 / 25
11. ´
Informacion Previa
´
¿A Quien le sirve el CV?
Mi(Individual)
Grupo de trabajo
Figura: Repositorio de Python usando
Mercurial
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 4 / 25
12. ´
Informacion Previa
´
¿A Quien le sirve el CV?
Mi(Individual)
Grupo de trabajo
´
Colaboracion
extramuros
Figura: Repositorio de Python usando
Mercurial
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 4 / 25
13. ´
Informacion Previa
´
¿Que es el CV centralizado?
Figura: Control de Versiones Centralizado : Cvs, Subversion, Sourcesafe,
TFS
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 5 / 25
14. ´
Informacion Previa
´
¿Que es el CV distribuido?
Figura: Control de Versiones Distribuido : Mercurial, Bazaar, Git, Bitkeeper
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 6 / 25
15. ´
Informacion Previa
´
¿Por que Mercurial?
Es Multiplataforma
´
Es Rapido
Es Sencillo
Es distribuido!!!
Es Software Libre
(Abierto y gratuito)
´
Es Comodo
Figura: Mercurial usa Mercurial
Es mantenido
(EYOF)
activamente
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 7 / 25
16. ´
Informacion Previa
´
¿Quienes Usan Mercurial?
Fog Creek
Google
Microsoft
Nasa
Mozilla - Firefox
Python
Go Language Figura: Google Code ofrece Mercurial
para control de versiones
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 8 / 25
17. ´
Informacion Previa
´
¿Quienes proveen Mercurial?
GoogleCode
BitBucket
Intuxication
Codeplex
Kiln
Atlassian
Appharbor Figura: Bitbucket ofrece repositorios
publicos y privados gratis
´
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 9 / 25
18. ´
Informacion Previa
´
¿Donde usar Mercurial?
Figura: Eclipse tiene plugins para emplear Mercurial
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 10 / 25
19. ´
¿Como uso mercurial?
´
¿Como uso Mercurial?
Figura: Netbeans tiene incorporado soporte para Mercurial de forma nativa
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 11 / 25
20. ´
¿Como uso mercurial?
´
Sesion T´pica en Ms Windows
ı
´
Figura: TortoiseHG se integra con el explorador de Windows, tambien hay
para Linux
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 12 / 25
21. ´
¿Como uso mercurial?
Mercurial en Linux
´
Figura: Kdiff3 es una herramienta comoda para hacer merge, labor rutinaria,
viene con tortoisehg para Windows
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 13 / 25
22. ´
¿Como uso mercurial?
Usando la l´nea de comandos
ı
Crear repositorio hg init
Actualizar repositorio hg update
Ver cambios locales hg status
Ver detalles de cambios hg diff
Registrar cambios hg commit
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 14 / 25
23. ´
¿Como uso mercurial?
Usando la l´nea de comandos
ı
Obtener repositorio hg clone
Ver cambios entrantes hg incoming
Obtener cambios remotos hg pull
Crear repositorio hg init
Actualizar repositorio hg update
Ver cambios locales hg status
Ver detalles de cambios hg diff
Registrar cambios hg commit
Ver cambios salientes hg outgoing
Publicar cambios hg push
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 14 / 25
24. ´
¿Como trabajo con otros?
´
¿Como trabajo con otr@s?
Figura: En Intranet es clave hg serve para compartir con otros el repositorio
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 15 / 25
25. ´
¿Como trabajo con otros?
´
¿Como coordino mis dispositivos con Mercurial?
Repositorio centralizado
Figura: Ejemplo de hg view, hay
centenas de plugins
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 16 / 25
26. ´
¿Como trabajo con otros?
´
¿Como coordino mis dispositivos con Mercurial?
Repositorio centralizado
hg clone
Figura: Ejemplo de hg view, hay
centenas de plugins
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 16 / 25
27. ´
¿Como trabajo con otros?
´
¿Como coordino mis dispositivos con Mercurial?
Repositorio centralizado
hg clone
hg clone en cada
dispositivo
Figura: Ejemplo de hg view, hay
centenas de plugins
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 16 / 25
28. ´
¿Como trabajo con otros?
´
¿Como coordino mis dispositivos con Mercurial?
Repositorio centralizado
hg clone
hg clone en cada
dispositivo
hg pull
Figura: Ejemplo de hg view, hay
centenas de plugins
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 16 / 25
29. ´
¿Como trabajo con otros?
´
¿Como coordino mis dispositivos con Mercurial?
Repositorio centralizado
hg clone
hg clone en cada
dispositivo
hg pull
hg push
Figura: Ejemplo de hg view, hay
centenas de plugins
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 16 / 25
30. Temas ulteriores
Temas ulteriores
´ ´
Figura: En Macintosh tambien hay opcion : MacHG
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 17 / 25
31. Temas ulteriores
´ ´
¿De donde salio Mercurial?
Autor Matt Mackall
´
Lenguaje de Programacion Python
Empresa Selenic
Licencia GPL V2
Patrocinadores Google, Fog Creek, Microsoft, Mozilla,...
Libro oficial Brian O’ Sullivan
´
Comienzos Bitkeeper No libre, contemporaneo con GIT, naciendo en
1.995
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 18 / 25
32. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
33. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
Impedir que se haga commit si no compila
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
34. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
Impedir que se haga commit si no compila
Publicar en otro repositorio
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
35. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
Impedir que se haga commit si no compila
Publicar en otro repositorio
Lanzar un conjunto de tests unitarios
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
36. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
Impedir que se haga commit si no compila
Publicar en otro repositorio
Lanzar un conjunto de tests unitarios
Enviar un tweet
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
37. Temas ulteriores
Acciones Pre y Post(Hooks)
Enviar correo al hacer commit
Impedir que se haga commit si no compila
Publicar en otro repositorio
Lanzar un conjunto de tests unitarios
Enviar un tweet
´
Cada uno define que desea hacer
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 19 / 25
38. Temas ulteriores
IDEs
Netbeans soporte
inclu´do
ı
Emacs soporte inclu´do
ı
Eclipse con HGE
VisualStudio con
VisualHG
Vim
Figura: Emacs con Mercurial
TextMate
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 20 / 25
39. Temas ulteriores
Para la empresa
Figura: El plugin VisualHG sirve para Visual Studio 2005, 2008, 2010
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 21 / 25
40. Temas ulteriores
Deploy Interno
˜
Figura: Caso de la vida real, 2 anos
´
en la empresa con mas de 20
´
repositorios, mas de 20
´
desarrolladores, reemplazo CVS
Linux / Debian
Apache
SSL
Dominio
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 22 / 25
41. Temas ulteriores
Outsource
GoogleCode
BitBucket
Intuxication
Codeplex
Kiln ´
Figura: Codeplex ofrece opcion para
´
emplear Mercurial ademas de
subversion y TFS
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 23 / 25
42. Hacia el fin
Thx
Desarrolladores de Python
Desarrolladores de Mercurial
Desarrolladores de Linux
Openclipart
djdavidvera
2U
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 24 / 25
43. Hacia el fin
Referentes
http://mercurial.selenic.com
http://hginit.com
http://hgbook.red-bean.com/
http://devnull.li/libromercurial/index.es.html
http://igor.tamarapatino.org/presentaciones/cpco04/mercurial.pdf
´
Igor Tamara igor@tamarapatino.org (CPCO) Mercurial Junio 30 de 2011 25 / 25