Aprendiendo a cabezazos

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:

  1. 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.
  2. 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

  1. Interrumpir a un currito cuando tiene algo a medias con otra cosa muy importante. Y menos interrumpirlo durante un año.
Esta entrada fue publicada en anécdotas, CVS. Guarda el enlace permanente.

4 respuestas a Aprendiendo a cabezazos

  1. Blaxter dijo:

    ¿Hacer un merge de un branch que hiciste hace un año? ufff, eso es misión imposible. Para hacer un merge tienes que saberte bastante bien que cambios has hecho para no cagarla. Yo no me acuerdo ni lo que programé hace una semana, como para acordarme lo de hace un año xD, ¡imposible!

  2. Blaxter dijo:

    Por cierto, respecto al segundo punto, también me estoy dando cuenta, que con la manía de refactorizar continuamente e incluso el tema del sangrado y compañía, cuando veo los diff de los commit la verdad que es un poco embarazoso :-/.

    Ahora trato, cada vez que añado algo al repositorio, revisarlo realmente bien e intentar evitar el típico pensamiento: «mmm… esto ya lo arreglaré después, ahora lo pongo para que chute», bueno y ayudarme del autoformateo de los editores para evitar tener espacios sueltos por ahí y tonterías similares (pero que joden un huevo!)

    saludos!

  3. eznibe dijo:

    que tal,
    cuando en el eclipse haces un diff de dos archivos hay una opcion para que no te muestre los cambios que solo son espacios en blanco. Con esto es mucho mas facil ver las diferencias reales que te interesan y te evitas por ej las sangrias.
    Si no encontras el boton avisame que trato de ser mas especifico

    saludos

  4. Chuidiang dijo:

    Blaxter, tienes razón. Va a haber que ir pensando en dejar los ficheros bien desde el principio.

    Gracias eznibe, no conocía esa opción. Hoy mismo pienso buscarla y probarla. Si funciona como parece, va a ser realmente útil.

    Se bueno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.