Desarrollar e implementar la administración con SVN de un website

Solución neta para un website, que consta de 5 proyectos, y hay algunos (less de 10) desarrolladores trabajando en la solución. Nos desplegamos casi a diario. La pregunta es cómo configurar el repository SVN para soportar este escenario (la implementación diaria), mencionando también que no todos los files comprometidos deben pasar a producción, hay una verificación de control de calidad antes de la implementación.

Lo que quiere hacer se conoce comúnmente como continuous integration (CI).

Si bien puede hacerlo utilizando Subversion, probablemente no sea la herramienta adecuada para el trabajo.

Hay un software especial de CI, que le permitirá automatizar fácilmente las tareas necesarias (pago desde control de versiones, compilation / creación, ejecución de testings automáticas, implementación, etc.). Un ejemplo sería CruiseControl.NET .

En cuanto a "no todos los files comprometidos deben ir a la producción", la solución común es tener una twig especial de "lanzamiento", que se implementa. Solo el código probado se fusiona allí (o el tronco siempre es estable, de lo contrario el mismo model). Por supuesto, también puede (mejor: adicionalmente) tener testings antes de su implementación automática, y solo implementar si todas las testings pasan.

Trabajando con una twig de lanzamiento

En la práctica, esto significa que las personas verifican su código a medida que lo producen. A veces, este código funcionará, a veces no. Cuando el time de liberación se acerca, se crea una "twig de publicación" en Subversion. Esta twig de lanzamiento es entonces una instantánea congelada de la fuente tal como estaba en el momento de la bifurcación. Ahora esta twig se puede usar para comstackr e implementar la aplicación, que luego se puede probar.

No se registra ningún código nuevo en la sucursal (pero los loggings pueden continuar en otro lugar). Solo si se detecta un error en la twig, ¿habrá un logging en la twig para solucionarlo? Esto continúa hasta que la sucursal pase todas las testings. Entonces la twig se puede lanzar como una nueva versión del software; después, la twig solo se usará si la versión lanzada necesita ser parchada.

Por supuesto, las correcciones de errores registradas en la twig también deben includese en la troncal (fusionando branch -> trunk, para lo cual Subversion proporciona soporte especial, o volviendo a implementar la corrección en la troncal, según corresponda).

Pruebe TeamCity (herramienta CI) ya que es gratis para pequeñas cantidades de CI. esto puede ser mejor para usted que CruiseControl.Net ya que CCNET tiene mucha configuration ya que todo se hace a través de XML. TeamCity usa asistentes para crear las secuencias de commands para administrar las versiones

si necesita alguna otra ayuda sobre CI, hágame saber que es algo de lo que soy evangelist.