43
Mercurial La v´ ıa f ´ acil Igor T ´ amara [email protected] CPCO Junio 30 de 2011

La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

MercurialLa vıa facil

Igor [email protected]

CPCO

Junio 30 de 2011

Page 2: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Contenidos

1 Informacion Previa

2 ¿Como uso mercurial?

3 ¿Como trabajo con otros?

4 Temas ulteriores

5 Hacia el fin

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 2 / 25

Page 3: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(

Yo lo habıa hechoalguna vez¿Cuando hice elcambio?¿Quien hizo que?¿Cuando cambio quien?Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 4: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez

¿Cuando hice elcambio?¿Quien hizo que?¿Cuando cambio quien?Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 5: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez¿Cuando hice elcambio?

¿Quien hizo que?¿Cuando cambio quien?Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 6: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez¿Cuando hice elcambio?¿Quien hizo que?

¿Cuando cambio quien?Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 7: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez¿Cuando hice elcambio?¿Quien hizo que?¿Cuando cambio quien?

Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 8: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez¿Cuando hice elcambio?¿Quien hizo que?¿Cuando cambio quien?Antes estaba mejor

¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 9: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el control de versiones?

Ahorrar pesadillasNo tenıa backup ;(Yo lo habıa hechoalguna vez¿Cuando hice elcambio?¿Quien hizo que?¿Cuando cambio quien?Antes estaba mejor¿Que hemos hecho?

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 3 / 25

Page 10: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿A Quien le sirve el CV?

Mi(Individual)

Grupo de trabajoColaboracionextramuros

Figura: Repositorio de Python usandoMercurial

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 4 / 25

Page 11: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿A Quien le sirve el CV?

Mi(Individual)Grupo de trabajo

Colaboracionextramuros

Figura: Repositorio de Python usandoMercurial

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 4 / 25

Page 12: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿A Quien le sirve el CV?

Mi(Individual)Grupo de trabajoColaboracionextramuros

Figura: Repositorio de Python usandoMercurial

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 4 / 25

Page 13: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el CV centralizado?

Figura: Control de Versiones Centralizado : Cvs, Subversion, Sourcesafe,TFS

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 5 / 25

Page 14: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Que es el CV distribuido?

Figura: Control de Versiones Distribuido : Mercurial, Bazaar, Git, Bitkeeper

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 6 / 25

Page 15: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Por que Mercurial?

Es MultiplataformaEs RapidoEs SencilloEs distribuido!!!Es Software Libre(Abierto y gratuito)Es ComodoEs mantenidoactivamente

Figura: Mercurial usa Mercurial(EYOF)

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 7 / 25

Page 16: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Quienes Usan Mercurial?

Fog CreekGoogleMicrosoftNasaMozilla - FirefoxPythonGo Language Figura: Google Code ofrece Mercurial

para control de versiones

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 8 / 25

Page 17: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Quienes proveen Mercurial?

GoogleCodeBitBucketIntuxicationCodeplexKilnAtlassianAppharbor Figura: Bitbucket ofrece repositorios

publicos y privados gratis

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 9 / 25

Page 18: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Informacion Previa

¿Donde usar Mercurial?

Figura: Eclipse tiene plugins para emplear Mercurial

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 10 / 25

Page 19: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como uso mercurial?

¿Como uso Mercurial?

Figura: Netbeans tiene incorporado soporte para Mercurial de forma nativa

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 11 / 25

Page 20: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como uso mercurial?

Sesion Tıpica en Ms Windows

Figura: TortoiseHG se integra con el explorador de Windows, tambien haypara Linux

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 12 / 25

Page 21: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como uso mercurial?

Mercurial en Linux

Figura: Kdiff3 es una herramienta comoda para hacer merge, labor rutinaria,viene con tortoisehg para Windows

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 13 / 25

Page 22: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como uso mercurial?

Usando la lınea de comandos

Obtener repositorio hg cloneVer cambios entrantes hg incomingObtener cambios remotos hg pull

Crear repositorio hg initActualizar repositorio hg updateVer cambios locales hg statusVer detalles de cambios hg diffRegistrar cambios hg commit

Ver cambios salientes hg outgoingPublicar cambios hg push

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 14 / 25

Page 23: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como uso mercurial?

Usando la lınea de comandos

Obtener repositorio hg cloneVer cambios entrantes hg incomingObtener cambios remotos hg pullCrear repositorio hg initActualizar repositorio hg updateVer cambios locales hg statusVer detalles de cambios hg diffRegistrar cambios hg commitVer cambios salientes hg outgoingPublicar cambios hg push

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 14 / 25

Page 24: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como trabajo con otr@s?

Figura: En Intranet es clave hg serve para compartir con otros el repositorio

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 15 / 25

Page 25: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como coordino mis dispositivos con Mercurial?

Repositorio centralizado

hg clonehg clone en cadadispositivohg pullhg push

Figura: Ejemplo de hg view, haycentenas de plugins

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 16 / 25

Page 26: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como coordino mis dispositivos con Mercurial?

Repositorio centralizadohg clone

hg clone en cadadispositivohg pullhg push

Figura: Ejemplo de hg view, haycentenas de plugins

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 16 / 25

Page 27: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como coordino mis dispositivos con Mercurial?

Repositorio centralizadohg clonehg clone en cadadispositivo

hg pullhg push

Figura: Ejemplo de hg view, haycentenas de plugins

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 16 / 25

Page 28: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como coordino mis dispositivos con Mercurial?

Repositorio centralizadohg clonehg clone en cadadispositivohg pull

hg push

Figura: Ejemplo de hg view, haycentenas de plugins

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 16 / 25

Page 29: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

¿Como trabajo con otros?

¿Como coordino mis dispositivos con Mercurial?

Repositorio centralizadohg clonehg clone en cadadispositivohg pullhg push

Figura: Ejemplo de hg view, haycentenas de plugins

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 16 / 25

Page 30: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Temas ulteriores

Figura: En Macintosh tambien hay opcion : MacHG

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 17 / 25

Page 31: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

¿De donde salio Mercurial?

Autor Matt MackallLenguaje de Programacion Python

Empresa SelenicLicencia GPL V2

Patrocinadores Google, Fog Creek, Microsoft, Mozilla,...Libro oficial Brian O’ SullivanComienzos Bitkeeper No libre, contemporaneo con GIT, naciendo en

1.995

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 18 / 25

Page 32: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commit

Impedir que se haga commit si no compilaPublicar en otro repositorioLanzar un conjunto de tests unitariosEnviar un tweetCada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 33: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commitImpedir que se haga commit si no compila

Publicar en otro repositorioLanzar un conjunto de tests unitariosEnviar un tweetCada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 34: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commitImpedir que se haga commit si no compilaPublicar en otro repositorio

Lanzar un conjunto de tests unitariosEnviar un tweetCada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 35: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commitImpedir que se haga commit si no compilaPublicar en otro repositorioLanzar un conjunto de tests unitarios

Enviar un tweetCada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 36: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commitImpedir que se haga commit si no compilaPublicar en otro repositorioLanzar un conjunto de tests unitariosEnviar un tweet

Cada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 37: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Acciones Pre y Post(Hooks)

Enviar correo al hacer commitImpedir que se haga commit si no compilaPublicar en otro repositorioLanzar un conjunto de tests unitariosEnviar un tweetCada uno define que desea hacer

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 19 / 25

Page 38: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

IDEs

Netbeans soporteincluıdoEmacs soporte incluıdoEclipse con HGEVisualStudio conVisualHGVimTextMate Figura: Emacs con Mercurial

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 20 / 25

Page 39: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Para la empresa

Figura: El plugin VisualHG sirve para Visual Studio 2005, 2008, 2010

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 21 / 25

Page 40: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Deploy Interno

Linux / DebianApacheSSLDominio

Figura: Caso de la vida real, 2 anosen la empresa con mas de 20repositorios, mas de 20desarrolladores, reemplazo CVS

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 22 / 25

Page 41: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Temas ulteriores

Outsource

GoogleCodeBitBucketIntuxicationCodeplexKiln Figura: Codeplex ofrece opcion para

emplear Mercurial ademas desubversion y TFS

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 23 / 25

Page 42: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Hacia el fin

Thx

Desarrolladores de PythonDesarrolladores de MercurialDesarrolladores de LinuxOpenclipartdjdavidvera2 U

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 24 / 25

Page 43: La v´ıa f acil´ Igor Tamara´ igor@tamarapatinoActualizar repositoriohg update Ver cambios localeshg status Ver detalles de cambioshg diff Registrar cambioshg commit Ver cambios

Hacia el fin

Referentes

http://mercurial.selenic.comhttp://hginit.comhttp://hgbook.red-bean.com/http://devnull.li/libromercurial/index.es.htmlhttp://igor.tamarapatino.org/presentaciones/cpco04/mercurial.pdf

Igor Tamara [email protected] (CPCO) Mercurial Junio 30 de 2011 25 / 25