Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ramas con git: Aplicación a un proyecto en producción

898 views

Published on

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

Published in: Technology
  • Be the first to comment

Ramas con git: Aplicación a un proyecto en producción

  1. 1. RAMAS CON GITAPLICACIÓN A UN PROYECTO EN PRODUCCIÓNIván López @ilopmarhttp://kaleidos.net/4B0082
  2. 2. PROBLEMA A RESOLVERCompatibilizar desarrollos de nueva funcionalidad conversiones estables en producción y corrección de bugs
  3. 3. ¿CÓMO LO HACEMOS?Definiendo una forma estandar de trabajar.Basado enUsando las ventajas de GITPolítica de BRANCHESVersionadoControl estricto de los pasos a producciónhttp://nvie.com/posts/a-successful-git-branching-model/
  4. 4. VERSIONADOEstandar X.YY.ZZX -> Mayor versiónYY -> Minor versiónZZ -> Patch
  5. 5. PASOS A PRODUCCIÓN
  6. 6. TIPOS DE RAMASInfinitas: develop, masterTemporales: features, releases, hotfix
  7. 7. INFINITAS
  8. 8. DEVELOPRama de desarrolloCualquier funcionalidad nueva parte de esta rama y semergea de nuevo aquíJenkins configurado para ejecutarse contra ella
  9. 9. MASTERRama de producciónNunca se commitea en ellaJenkins configurado para ejecutarse contra ella, aunquenunca debería fallar ;-)
  10. 10. FRONTENDAl principio del proyecto se maquetaba en ellaDeprecada
  11. 11. TEMPORALES
  12. 12. FEATUREPara desarrollar nuevas User StoriesSe crea a partir de develop y se mergea de nuevo a develop
  13. 13. DEMO
  14. 14. RELEASECongelación y estabilización de versión candidata a subir aproducciónSe 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 ramaEstá prohibido mergear cambios contra esta rama ytampoco añadir nueva funcionalidad
  15. 15. DEMO
  16. 16. HOTFIXCorrección de bugs de producción que no pueden esperar alciclo de subidas normalesSe debe aumentar la versión (patch) y crear tagSe crea a partir de master y se mergea de nuevo a master ydevelop
  17. 17. DEMO
  18. 18. PROBLEMASFuncionalidad no-plugable ni ordenableÁrbol de commits "sucio" por los merges de develop a lasramas de featuresNo hacemos rebase (aunque en su momento lo hicimos) y lovolveremos a hacer
  19. 19. GRACIASIVÁN LÓPEZ@ILOPMAR

×