Mercurial
Mercurial me llamó la atención desde que supe de él; pero no había tenido oportunidad de usarlo. Así que me decidí a usarlo para unos proyectos de prueba con los que estoy jugando en casa.
Hasta el momento, me está gustando mucho.
Diagrama de uso
Aún estoy aprendiendo, pero por lo pronto hice un diagrama explicando arquitectura y comandos comunes.
Notas
Es interesante notar que se puede migrar de Subversion, CVS, Git, Darcs y aparentemente Bazaar y Perforce.
Tips
Inicializar el código
Después de hacer un hg init
en mi proyecto, se crea automátivamente el sub-folder .hg
; pero yo debo crear manualmente el archivo .hg/hgrc
con los siguientes contenidos:
[web]
description = Descripción de mi proyecto.
contact = Rodrigo Flores
allow_push = *
push_ssl = false
[paths]
default-push = http://localhost/hg/test/
Los parámetros description y contact son bastante directos, pero vale la pena mencionar los otros 3:
allow_push
- Es el listado de usuarios que tienen permiso de hacer un push.push_ssl
- Determina si debemos usar ssl. Como mi servidor local no tiene habilitado https, lo deshabilité.default-push
- Determina a dónde hacer un push cuando no se especifica una ruta.
Diff Visual
Un tip útil es que se puede hacer un diff visual; usando una extensión llamada extdiff
. Para habilitarla y agregar un comando asociado a ella, agregamos a ~/.hgrc
lo siguiente:
[extensions]
# Con esto habilitamos la extensión:
hgext.extdiff =
[extdiff]
# Con esto agregamos un nuevo comando, vdiff, que invoca a kdiff3
cmd.vdiff = kdiff3
Después de ésto, podemos hacer un hg vdiff
.
Links Relacionados
- TortoiseHG
- Hg Init: A Mercurial tutorial
- Branching Explained
- Video: Mercurial Project
- Mercurial: Workflows/Guides
- Mercurial en RepoForge: Repositorios con versiones recientes para RHEL/CentOS.