A [git] workflow   Continuous Delivery that doesnt hurtmadrid-rb                                  Sergio Gil@madridrb      ...
DISCLAIMER IEsto va más de workflow que de git. Aceptamos mercurial   como animal de compañía
DISCLAIMER II + RETOIntentar no citar explicitamente un comando de git en toda la charla
http://gitimmersion.com/
yo / nosotros
Hacemos productos
Hacemos productosy los productos duran para siempre
Nuestros productos son complejos
Nuestros productos son complejos      Nos encanta el TDD
Nuestros productos son complejos      Nos encanta el TDDNos encanta el feedback temprano
Nuestros productos son complejos           Nos encanta el TDD    Nos encanta el feedback tempranoSiempre probamos en un en...
“Máquina deconvertir café  en código”
“Máquina deconvertir café   hamburguesas  en código”
“Máquina deconvertir café   hamburguesas  en código”     features
“Máquina deconvertir café   hamburguesas  en código”     features      útiles
“Máquina deconvertir café     hamburguesas  en código”      features       útiles   en producción
“Máquina de                  convertir café     hamburguesas                    en código”                        features...
U    Feature A en una semana                        Feature A en un mes                              T
h oy        eA      ur   atFe                                            es                                        m      ...
Feature A   hoy
Feature A   Feature A + B   hoy        en un mes
Feature A   Feature A + B Feature A hoy +   hoy        en un mes Feature B en un mes
KANBAN
WIP (≤ X)
master
master         Feature A Task 1/3
master         Feature A Task 1/3         Feature B Task 1/2
master         Feature A Task 1/3         Feature B Task 1/2         Feature A Task 2/3
master         Feature A Task 1/3         Feature B Task 1/2         Feature A Task 2/3         Feature B Task 2/2
master         Feature A Task 1/3         Feature B Task 1/2         Feature A Task 2/3         Feature B Task 2/2        ...
master         Feature A Task 1/3         Feature B Task 1/2         Feature A Task 2/3         Feature B Task 2/2        ...
Problema del despliegue retrasado    que retrasa el despliegue
Problema del despliegue retrasado    que retrasa el despliegue                o
Problema del despliegue retrasado    que retrasa el despliegue                o       Espiral de mierda
Problema del despliegue retrasado    que retrasa el despliegue                o       Espiral de mierdaSi mientras esperam...
¡OK, usemos ramas!
master
master         feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a                           ➜ staging
masterfeat_b            feat_a                           ➜ staging   OK
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción                           ➜ staging
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción                           ➜ staging...
masterfeat_b            feat_a                           ➜ staging   OK   ➜ producción                           ➜ staging...
master
master         feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a
masterfeat_b            feat_a                           ➜ staging
masterfeat_b            feat_a                           ➜ staging   FAIL
masterfeat_b            feat_a                           ➜ staging   FAIL
masterfeat_b            feat_a                           ➜ staging   FAIL
masterfeat_b            feat_a                           ➜ staging   FAIL
masterfeat_b            feat_a                           ➜ staging   FAIL                           ➜ staging
masterfeat_b            feat_a                           ➜ staging   FAIL                           ➜ staging   OK
masterfeat_b            feat_a                           ➜ staging   FAIL                           ➜ staging   OK     ➜ p...
masterfeat_b            feat_a                           ➜ staging   FAIL                           ➜ staging   OK     ➜ p...
masterfeat_b            feat_a                           ➜ staging   FAIL                           ➜ staging   OK     ➜ p...
master   stable
master   stable                  feat_a
master            stable         feat_b            feat_a
master            stable         feat_b            feat_a
master            stable         feat_b            feat_a
master            stable                     feat_b            feat_a➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ staging       ➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ stagingOK     ➜ staging
master            stable                            feat_b            feat_aFAIL   ➜ stagingOK     ➜ staging
master                 stable                                 feat_b            feat_aFAIL   ➜ stagingOK     ➜ staging    ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
master                  stable                                 feat_b             feat_aFAIL   ➜ stagingOK     ➜ staging  ...
BONUS POINTS & PRO TIPS
BONUS POINTS & PRO TIPSrecuerda publicar topic branches
BONUS POINTS & PRO TIPSrecuerda publicar topic branches      taguea tus releases
BONUS POINTS & PRO TIPS  recuerda publicar topic branches          taguea tus releasesrebasa tus ramas privadas sobre stable
BONUS POINTS & PRO TIPS      recuerda publicar topic branches              taguea tus releases    rebasa tus ramas privada...
BONUS POINTS & PRO TIPS      recuerda publicar topic branches              taguea tus releases    rebasa tus ramas privada...
BONUS POINTS & PRO TIPS       recuerda publicar topic branches              taguea tus releases    rebasa tus ramas privad...
PROBLEMAS
PROBLEMASA veces la integración da trabajo
PROBLEMAS      A veces la integración da trabajoEscala mal tanto en horizontal como en vertical
PROBLEMAS      A veces la integración da trabajoEscala mal tanto en horizontal como en vertical                   WIN
graciasmadrid-rb             Sergio Gil@madridrb             @porras
A [git] workflow
A [git] workflow
A [git] workflow
A [git] workflow
A [git] workflow
Upcoming SlideShare
Loading in …5
×

A [git] workflow

4,584 views

Published on

Charla de Enero 2011 en Madrid-rb

https://madridrb.jottit.com/enero_2011

Published in: Technology
1 Comment
11 Likes
Statistics
Notes
No Downloads
Views
Total views
4,584
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
67
Comments
1
Likes
11
Embeds 0
No embeds

No notes for slide

A [git] workflow

  1. 1. A [git] workflow Continuous Delivery that doesnt hurtmadrid-rb Sergio Gil@madridrb @porras
  2. 2. DISCLAIMER IEsto va más de workflow que de git. Aceptamos mercurial como animal de compañía
  3. 3. DISCLAIMER II + RETOIntentar no citar explicitamente un comando de git en toda la charla
  4. 4. http://gitimmersion.com/
  5. 5. yo / nosotros
  6. 6. Hacemos productos
  7. 7. Hacemos productosy los productos duran para siempre
  8. 8. Nuestros productos son complejos
  9. 9. Nuestros productos son complejos Nos encanta el TDD
  10. 10. Nuestros productos son complejos Nos encanta el TDDNos encanta el feedback temprano
  11. 11. Nuestros productos son complejos Nos encanta el TDD Nos encanta el feedback tempranoSiempre probamos en un entorno de staging
  12. 12. “Máquina deconvertir café en código”
  13. 13. “Máquina deconvertir café hamburguesas en código”
  14. 14. “Máquina deconvertir café hamburguesas en código” features
  15. 15. “Máquina deconvertir café hamburguesas en código” features útiles
  16. 16. “Máquina deconvertir café hamburguesas en código” features útiles en producción
  17. 17. “Máquina de convertir café hamburguesas en código” features útiles en producciónidea implícita: tiempo
  18. 18. U Feature A en una semana Feature A en un mes T
  19. 19. h oy eA ur atFe es m 1 en eA tur Fea
  20. 20. Feature A hoy
  21. 21. Feature A Feature A + B hoy en un mes
  22. 22. Feature A Feature A + B Feature A hoy + hoy en un mes Feature B en un mes
  23. 23. KANBAN
  24. 24. WIP (≤ X)
  25. 25. master
  26. 26. master Feature A Task 1/3
  27. 27. master Feature A Task 1/3 Feature B Task 1/2
  28. 28. master Feature A Task 1/3 Feature B Task 1/2 Feature A Task 2/3
  29. 29. master Feature A Task 1/3 Feature B Task 1/2 Feature A Task 2/3 Feature B Task 2/2
  30. 30. master Feature A Task 1/3 Feature B Task 1/2 Feature A Task 2/3 Feature B Task 2/2 B ya está, ¡a desplegar!
  31. 31. master Feature A Task 1/3 Feature B Task 1/2 Feature A Task 2/3 Feature B Task 2/2 B ya está, ¡a desplegar! ¡NEGATIVO, Señor! A no está lista
  32. 32. Problema del despliegue retrasado que retrasa el despliegue
  33. 33. Problema del despliegue retrasado que retrasa el despliegue o
  34. 34. Problema del despliegue retrasado que retrasa el despliegue o Espiral de mierda
  35. 35. Problema del despliegue retrasado que retrasa el despliegue o Espiral de mierdaSi mientras esperamos que A esté lista empezamos C, ¡el problema puede durar para siempre!
  36. 36. ¡OK, usemos ramas!
  37. 37. master
  38. 38. master feat_a
  39. 39. masterfeat_b feat_a
  40. 40. masterfeat_b feat_a
  41. 41. masterfeat_b feat_a
  42. 42. masterfeat_b feat_a ➜ staging
  43. 43. masterfeat_b feat_a ➜ staging OK
  44. 44. masterfeat_b feat_a ➜ staging OK ➜ producción
  45. 45. masterfeat_b feat_a ➜ staging OK ➜ producción
  46. 46. masterfeat_b feat_a ➜ staging OK ➜ producción
  47. 47. masterfeat_b feat_a ➜ staging OK ➜ producción ➜ staging
  48. 48. masterfeat_b feat_a ➜ staging OK ➜ producción ➜ staging OK
  49. 49. masterfeat_b feat_a ➜ staging OK ➜ producción ➜ staging OK ➜ producción
  50. 50. master
  51. 51. master feat_a
  52. 52. masterfeat_b feat_a
  53. 53. masterfeat_b feat_a
  54. 54. masterfeat_b feat_a
  55. 55. masterfeat_b feat_a ➜ staging
  56. 56. masterfeat_b feat_a ➜ staging FAIL
  57. 57. masterfeat_b feat_a ➜ staging FAIL
  58. 58. masterfeat_b feat_a ➜ staging FAIL
  59. 59. masterfeat_b feat_a ➜ staging FAIL
  60. 60. masterfeat_b feat_a ➜ staging FAIL ➜ staging
  61. 61. masterfeat_b feat_a ➜ staging FAIL ➜ staging OK
  62. 62. masterfeat_b feat_a ➜ staging FAIL ➜ staging OK ➜ producción
  63. 63. masterfeat_b feat_a ➜ staging FAIL ➜ staging OK ➜ producción ¡NO!
  64. 64. masterfeat_b feat_a ➜ staging FAIL ➜ staging OK ➜ producción ¡NO! la feature A está rota
  65. 65. master stable
  66. 66. master stable feat_a
  67. 67. master stable feat_b feat_a
  68. 68. master stable feat_b feat_a
  69. 69. master stable feat_b feat_a
  70. 70. master stable feat_b feat_a➜ staging
  71. 71. master stable feat_b feat_aFAIL ➜ staging
  72. 72. master stable feat_b feat_aFAIL ➜ staging
  73. 73. master stable feat_b feat_aFAIL ➜ staging
  74. 74. master stable feat_b feat_aFAIL ➜ staging ➜ staging
  75. 75. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging
  76. 76. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging
  77. 77. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging cc ión u prod ➜
  78. 78. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión ucc p rod ➜
  79. 79. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión ucc p rod ➜
  80. 80. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión ucc p rod ➜
  81. 81. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión ucc ➜ staging p rod ➜
  82. 82. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión uccOK ➜ staging p rod ➜
  83. 83. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión uccOK ➜ staging p rod ➜
  84. 84. master stable feat_b feat_aFAIL ➜ stagingOK ➜ staging feat_c ión uccOK ➜ staging p rod ➜ ➜ producción
  85. 85. BONUS POINTS & PRO TIPS
  86. 86. BONUS POINTS & PRO TIPSrecuerda publicar topic branches
  87. 87. BONUS POINTS & PRO TIPSrecuerda publicar topic branches taguea tus releases
  88. 88. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea tus releasesrebasa tus ramas privadas sobre stable
  89. 89. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea tus releases rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados
  90. 90. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea tus releases rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados --no-ff para una historia detallada
  91. 91. BONUS POINTS & PRO TIPS recuerda publicar topic branches taguea tus releases rebasa tus ramas privadas sobre stablenunca rebases o enmiendes commits publicados --no-ff para una historia detallada reset: corte por donde tenga que cortar
  92. 92. PROBLEMAS
  93. 93. PROBLEMASA veces la integración da trabajo
  94. 94. PROBLEMAS A veces la integración da trabajoEscala mal tanto en horizontal como en vertical
  95. 95. PROBLEMAS A veces la integración da trabajoEscala mal tanto en horizontal como en vertical WIN
  96. 96. graciasmadrid-rb Sergio Gil@madridrb @porras

×