Pues acabo de aprender una cosa nueva. Cómo no, una cosa que NO debo hacer, porque hoy me ha tocado sufrir las consecuencias.
Hace aproximadamente un año tuve que hacer un cambio importante en un proyecto. Un cambio en unos pocos ficheros fuente, pero que podían dejar "descojonado" el sistema durante una buena temporada hasta que se volviera a afinar. Así que me decidí a abrir una rama de CVS para hacer mis cambios, de forma que cuando en esa rama todo estuviera adecuadamente depurado, juntarlo con la rama principal con ciertas garantías.
Pues bien, comencé los cambios y lo dejé después de un par de semanas de trabajo casi todo a punto… pero me interrumpieron con otra de esas labores super importantes que no pueden esperar a otro día … y aquella rama se quedó sin juntar … hasta ahora.
Hoy me he puesto a intentar juntar aquella rama con la principal y es un verdadero lio. En parte por recordar qué es lo que había tocado, pero principalmente he tenido que sufrir una de mis pequñas manías. Tengo la manía de refactorizar el código que toco, comentar lo que está sin comentar, arreglar los sangrados, eliminar warnings, etc, etc. Pues bien, eso ha hecho que sea prácticamente imposible ver qué cambios reales de código se hicieron entre la rama principal y la rama secundaria. Un diff de ambas versiones daba por cambiadas casi todas las líneas, aunque sólo fuera por temas de sangrado.
Así que ya sé dos cosas que NO debo hacer:
- Dedicarme a hacer refactoring en una rama. En las ramas hay que tocar lo mínimo imprescindible para facilitar la tarea de unirlas a la rama principal.
- No dejar tanto tiempo hasta integrar la rama. Si dejas mucho tiempo, es posible incluso que se te ocurra hacer refactoring y comentar el código de la rama principal, aunque no lo hagas en la secundaria, con lo que el efecto es el mismo.
Y de paso, sé una cosa que no deben hacer NUNCA los jefes
- Interrumpir a un currito cuando tiene algo a medias con otra cosa muy importante. Y menos interrumpirlo durante un año.