¿Esto suena como una buena idea? (svn / control de versiones / webdev / deployment)

Recientemente me he encargado de diseñar e implementar un control de versiones de código fuente, testings 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 configuration que he diseñado:

  • El tronco se utiliza como tree de desarrollo principal, como debería ser
  • Servidores remotos (testing y producción) revisan el código del repository SVN.
    • Los serveres de testing revisan el tronco.
    • Los serveres de producción revisan la twig de "producción".
  • Una vez que el tronco se considera listo para la producción, se fusiona en dos twigs, "estable" y "producción".
  • La twig estable es un trampolín para la twig de producción. Si se encuentran errores una vez que el nuevo código se activa en el server de producción, la twig 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 twig 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 twig 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 🙂

Verifique la continuous integration y el control de cruceros / CruiseControl.NET . Puede configurar "proyectos" en CC para verificar automáticamente (cada n min) o bajo demanda. Para el tronco, querría automatizarlo, y para la twig estable lo haría a demanda.

Una vez que el proyecto se hace más grande y el tronco se convierte en algo para proteger, usted querrá establecer de vez en cuando una twig TRY para realizar cambios importantes o desarrollo de vanguardia / experimento / futuro.

Me gustaría ver el Control de Versión Pragmática usando el libro de Subversion . Disponen de una estructura realmente buena para organizar el repository en sí mismo, así como para administrar el labeldo, la bifurcación y el tronco en lo que respecta a lanzamientos, correcciones de errores, nuevas características, experimentos, etc. Tienen una convención de nombres para todos eso además de "recetas" para que los commands SVN se encarguen de cada uno.

Es una lectura bastante rápida y han hecho mucho del pensamiento y el trabajo pesado para ti, incluidas las cosas que aún no has pensado.