La organizacion del código fuente dentro del TFS será la siguiente:
Main
Development
Release
Release.1.0.0.0
Release 1.0.0.1
Release 1.0.1.0
Main:
Rama principal donde permanece los fuentes estables (compilables) del proyecto. Ningún desarrollador debe hacer checkin dentro de esta rama. Se actualiza periodicamente y se tendrán en cuenta excepciones en caso de que sean necesarias.
Development:
Branch de Main donde se realiza el desarrollo. Los desarrolladores del proyecto trabajarán sobre este branch, realizando sus checkin en él mismo. Una vez terminadas las modificaciones y testeadas, se hace un merge a Main para actualizar el mismo y se crea un branch en Release para su implementación.
Release:
Branch de Main por cada Release, es decir, existiran múltiples ramas creadas desde el main dejando cada una sin realizar modificaciones sobre las mismas. En caso de haber bugs en alguno de ellos, se crea un branch más derivado del cual contiene el bug y se trabaja sobre el mismo, en este caso si se realizan checkin. Una vez solucionado el bug y testeado se hace un merge con Main para implementar los cambios en la version estable, en caso de ser necesario se hace una actualización de la rama Development.
El responsable y encargado de los Merges y actualizaciones es el Arquitecto. Generalmente las correciones de bugs (hotfixes) se realizan sobre el release con el Revision number incrementado en 1.