ramas con git: aplicación a un proyecto en producción

Post on 26-May-2015

489 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

RAMAS CON GITAPLICACIÓN A UN PROYECTO EN PRODUCCIÓN

Iván López @ilopmarhttp://kaleidos.net/4B0082

PROBLEMA A RESOLVERCompatibilizar desarrollos de nueva funcionalidad conversiones estables en producción y corrección de bugs

¿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/

VERSIONADOEstandar X.YY.ZZX -> Mayor versión

YY -> Minor versión

ZZ -> Patch

PASOS A PRODUCCIÓN

TIPOS DE RAMASInfinitas: develop, masterTemporales: features, releases, hotfix

INFINITAS

DEVELOPRama de desarrollo

Cualquier funcionalidad nueva parte de esta rama y semergea de nuevo aquí

Jenkins configurado para ejecutarse contra ella

MASTERRama de producción

Nunca se commitea en ella

Jenkins configurado para ejecutarse contra ella, aunquenunca debería fallar ;-)

FRONTENDAl principio del proyecto se maquetaba en ella

Deprecada

TEMPORALES

FEATUREPara desarrollar nuevas User Stories

Se crea a partir de develop y se mergea de nuevo a develop

DEMO

RELEASECongelación y estabilización de versión candidata a subir aproducción

Se debe aumentar la versión (minor) y crear tagSe crea a partir de develop y se mergea de nuevo a master ydevelopCualquier bug que haya que corregir para estabilizar laversión se commiteará directamente contra esta rama

Está prohibido mergear cambios contra esta rama ytampoco añadir nueva funcionalidad

DEMO

HOTFIXCorrección de bugs de producción que no pueden esperar alciclo de subidas normales

Se debe aumentar la versión (patch) y crear tagSe crea a partir de master y se mergea de nuevo a master ydevelop

DEMO

PROBLEMASFuncionalidad no-plugable ni ordenable

Árbol de commits "sucio" por los merges de develop a lasramas de features

No hacemos rebase (aunque en su momento lo hicimos) y lovolveremos a hacer

GRACIASIVÁN LÓPEZ@ILOPMAR

top related