Con el ánimo de mantener mi baúl SVN limpio y listo para el despliegue, he estado utilizando the following source control model. Para los impacientes, el concepto básico es que cree ramas de desarrollo para hacer el desarrollo real, y deje el tronco limpio y listo para el despliegue, en cualquier momento (sin basura en el maletero).TeamCity Projects y Multiple SVN Branches
Además de esto, estoy configurando TeamCity para una integración continua. Dentro de TeamCity, me gustaría asegurarme de que todas las ramas de desarrollo, así como la rama lista para implementar (la troncal, en mi caso) se construyan correctamente y pasen todas las pruebas unitarias.
Esto podría ser una pregunta estúpida, pero al no estar demasiado familiarizado con TeamCity, ¿debería crear un nuevo proyecto TeamCity para cada sucursal? La rama lista para implementar, en particular, tiene algunas reglas adicionales a la rama de desarrollo. Por ejemplo, las versiones deben guardarse en directorios versionados en el sistema de archivos (p. Ej., C: \ Projects \ MyProject \ 1.0.187 ..., C: \ Projects \ MyProject \ 1.0.188 ...) para permitir un fácil acceso a los binarios, en cualquier punto en el tiempo. Por otro lado, no es necesario guardar copias versionadas de los ensamblajes en las ramas de desarrollo y perderá espacio en el disco duro.
Dentro de TeamCity, prefiero ver solo un proyecto para cada proyecto de software. En otras palabras, si mi empresa está trabajando en un número X de proyectos de desarrollo, preferiría ver ese proyecto listado solo una vez, no X * 2 (suponiendo que cada proyecto tenga solo dos ramas).