Estoy buscando las "Mejores prácticas" con respecto a los roles y responsabilidades, específicamente quién es responsable de las fusiones desde las ramas de desarrollo hasta el tronco (o principal). Básicamente estoy buscando municiones para ayudar a mi causa.
Déjame describir lo que estoy enfrentando. Soy el desarrollador principal (propietario) de una aplicación en particular. Nuestra compañía se mudó recientemente de VSS (donde yo era el administrador de la base de datos VSS en la que estaba almacenada mi aplicación) a TFS (donde solo tengo permisos en las ramas de desarrollo creadas por nuestro equipo de "operaciones"). En trabajos anteriores, era administrador de TFS, así que conozco bien TFS y MSBuild.
No tengo ningún problema con la estrategia de ramificación y fusión utilizada (rama principal, con ramas de desarrollo de errores / proyectos creadas según sea necesario, fusionadas de nuevo a main y luego promovidas a una rama de lanzamiento). Los problemas que tengo son:
No puedo crear mis propias ramas. Debo crear una tarea TFS para que un miembro del equipo de "operaciones" cree la rama por mí.
No puedo fusionarme de Main a mi rama de desarrollo. Debo crear una tarea TFS para que un miembro del equipo de "operaciones" realice la fusión, y luego espero que no "pise" ninguno de los cambios de mi equipo ya que el "operador de operaciones" puede o no ser desarrollador y ciertamente lo ha hecho. poco o ningún conocimiento del código que está fusionando.
No puedo fusionarme del desarrollo a Main. Nuevamente, debo crear una tarea TFS para que el "operador de operaciones" realice la fusión, con la esperanza de que lo haga correctamente. Luego, tengo que crear otra tarea TFS para volver a fusionarme en mi sucursal y poder resolver cualquier problema que haya ocurrido al tener una fusión que no sea de desarrollador en Main.
No puedo crear ni editar scripts de MSBuild. Nuevamente, tengo que trabajar con el equipo de "operaciones" que es nuevo en MSBuild para que solo se puedan realizar las tareas de compilación más básicas. (Olvídate de cualquier cosa compleja, o el cielo no permita una tarea personalizada).
No puedo ejecutar un script de MSBuild. Nuevamente, solo el equipo de "operaciones" puede hacer esto.
Para completar todo esto, generalmente es un recurso "off-shore" que realiza las tareas solicitadas, por lo que incluso si creo la tarea para (ramificar / fusionar / construir) temprano en la mañana, probablemente no se completará hasta esa tarde
Ahora no tengo ningún problema con el equipo de "operaciones" que mantiene las ramas de lanzamiento. Como todo lo que están haciendo es (básicamente) tomar la última versión de Main y promocionarla a la rama de lanzamiento; así que mientras "Main" sea estable y esté listo, la rama de lanzamiento será buena.
Mi opinión es que los clientes potenciales técnicos (como I) deberían ser responsables de mantener el enlace troncal ("Principal") y cualquier fusión hacia / desde las ramas de desarrollo. El líder del equipo también debe tener la capacidad de generar scripts de MS Build para compilar e implementar en el entorno de prueba de integración.
¿Alguien puede dirigirme a un documento de Mejores Prácticas que me ayude a probar mi caso? Toda mi búsqueda ha dado como resultado las mejores prácticas relacionadas con las técnicas de ramificación y fusión, y ninguna mención de la OMS debería realizar dicha ramificación / fusión.
WHO should be performing said branching/merging.Es una decisión organizacional interna. Realmente no es algo con lo que podamos ayudarlo ...