Recientemente me he encargado de diseñar e implementar un control de versiones de código fuente, pruebas y esquema de implementación en la empresa en la que trabajo.
Personalmente, he trabajado con Subversion durante algunos años en mis propios proyectos. Pero nunca lo he tratado a esta gran escala. Por lo tanto, pensé que podría preguntar aquí si alguien tiene algún comentario o sugerencia sobre la siguiente configuración que he diseñado:
- El tronco se utiliza como el árbol de desarrollo principal, como debería ser
- Servidores remotos (prueba y producción) revisan el código del repositorio SVN.
- Los servidores de prueba revisan el tronco.
- Los servidores de producción revisan la rama de producción.
- Una vez que el tronco se considera listo para la producción, se fusiona en dos ramas, estable y producción.
- La rama estable es un trampolín para la rama de producción. Si se encuentran errores una vez que el nuevo código se activa en el servidor de producción, la rama estable se usa para corregir los errores y también para probar las correcciones de errores.
- Una vez arreglados, los cambios se fusionan en la rama de producción y también en el tronco donde el desarrollo ha continuado funcionando de forma normal agregando nuevas características y lo que sea independientemente de las correcciones de errores que fueran necesarias.
De esta forma, el desarrollo no tiene que detenerse en trunk siempre que haya una versión de producción, ya que las correcciones de errores no dependen del enlace troncal. Además, siempre hay una rama de solo lectura en la que está disponible el último código estable y sin errores, incluso en medio de una gran reparación de errores.
Si alguien tiene alguna sugerencia, comentario u otra cosa, lo agradecería muchísimo :)