Charla en la que cuento cómo estamos utilizando la potencia de las ramas de Git para el desarrollo de una aplicación que ya está en producción. Dicha aplicación se está desarrollando con metodologías ágiles y cada semana se sube nueva funcionalidad a producción. Es necesario compaginar los desarrollos de nuevas funcionalidades con la corrección de bugs y con una política estricta de ramas con Git podemos hacerlo :-)
Código fuente de las slides (creadas con reveal.js) disponible en: https://github.com/lmivan/slides-ramas-git
3. ¿CÓMO LO HACEMOS?
Definiendo una forma estandar de trabajar.
Basado en
Usando las ventajas de GIT
Política de BRANCHES
Versionado
Control estricto de los pasos a producción
http://nvie.com/posts/a-successful-git-branching-model/
9. DEVELOP
Rama de desarrollo
Cualquier funcionalidad nueva parte de esta rama y se
mergea de nuevo aquí
Jenkins configurado para ejecutarse contra ella
10. MASTER
Rama de producción
Nunca se commitea en ella
Jenkins configurado para ejecutarse contra ella, aunque
nunca debería fallar ;-)
15. RELEASE
Congelación y estabilización de versión candidata a subir a
producción
Se debe aumentar la versión (minor) y crear tag
Se crea a partir de develop y se mergea de nuevo a master y
develop
Cualquier bug que haya que corregir para estabilizar la
versión se commiteará directamente contra esta rama
Está prohibido mergear cambios contra esta rama y
tampoco añadir nueva funcionalidad
17. HOTFIX
Corrección de bugs de producción que no pueden esperar al
ciclo de subidas normales
Se debe aumentar la versión (patch) y crear tag
Se crea a partir de master y se mergea de nuevo a master y
develop
19. PROBLEMAS
Funcionalidad no-plugable ni ordenable
Árbol de commits "sucio" por los merges de develop a las
ramas de features
No hacemos rebase (aunque en su momento lo hicimos) y lo
volveremos a hacer