Si solo trabajamos con una rama en Subversion, ¿deberíamos molestarnos? ¿No podemos simplemente trabajar en el maletero para acelerar las cosas?
Así es como nos desarrollamos con Subversion:
- Hay un baúl
- Creamos una nueva rama de desarrollo.
- Desarrollamos una nueva característica en esa rama
- Cuando se realiza la función, se fusiona en el tronco, se elimina la rama y se crea una nueva rama de desarrollo desde el tronco.
Cuando queremos lanzar a producción, hacemos una etiqueta desde el tronco. Las correcciones de errores se realizan en una rama de esa etiqueta. Esta corrección de errores se fusiona en el tronco.
Es por eso que creamos una nueva rama de desarrollo después de que se realiza una función. De esta manera, la corrección de errores se incluye lo suficientemente pronto en nuestro nuevo código.
A continuación se muestra un diagrama que debe aclarar:
Ahora, existe la sensación de que esta no es la forma más eficiente de trabajar. Desarrollamos localmente antes de comprometernos, lo que lleva unos 5-10 minutos. Puede comprender que esto se experimenta como un tiempo de espera bastante largo.
La idea de una rama de desarrollo es que el enlace troncal siempre esté listo para su lanzamiento. Pero esto ya no es cierto en nuestra situación. A veces, una característica está casi lista, y algunos desarrolladores ya comenzarán a codificar la siguiente característica (de lo contrario, estarían esperando a que uno o dos desarrolladores terminen y se fusionen).
Luego, cuando finaliza la función 1, se fusiona en el tronco, pero con algunas confirmaciones de la función 2 incluidas.
Entonces, ¿deberíamos molestarnos con la rama de desarrollo, ya que solo tenemos una rama? He estado leyendo sobre el desarrollo basado en troncales y la ramificación por abstracción, pero la mayoría de los artículos que he encontrado se centran en la parte de ramificación por abstracción. Tengo la impresión de que hay grandes cambios que abarcarán varios lanzamientos. Esto no es un problema que estamos teniendo.
¿Qué piensas? ¿Podemos trabajar en el maletero? El peor de los casos es (creo) que tendríamos que hacer una etiqueta desde el tronco y seleccionar los commits que necesitamos, porque algunos commits / características aún no están listos para la producción.