En nuestra compañía, estamos trabajando en un producto compuesto por diferentes módulos C/C++. Idealmente, cada nivel y módulo debería desarrollarse por separado por diferentes equipos y evaluarse de forma independiente. Actualmente, tenemos por separado cada módulo en su propia rama: \svn: externals & tagging, cómo combinar código entre equipos
Los módulos son:
\hid \branches \tags \trunk \api \branches \tags \trunk \ui \branches \tags \trunk
Por otra parte, la versión del producto está construido mediante la combinación de los módulos y compilado con regularidad utilizando un sistema de CI.
\productX \branches \5.0 \hid-4.0 (svn:externs \hid\branches\4.0) \api-3.0 (svn:externs \api\branches\3.0) \ui-5.0 (svn:externs \ui\branches\5.0) \tags \trunk
El principal problema que estamos teniendo es el comportamiento de 'svn tag' en asociación con externos. Los externos actuales hacen referencia a HEAD, porque nos gustaría construir la última versión regularmente para asegurar que todos los módulos funcionen juntos. Sin embargo, una vez que una construcción es exitosa y procedemos a hacer una publicación, sería bueno si hubiera una forma fácil de etiquetar automáticamente todo, incluida la versión utilizada en el exterior. Tal como está hoy, tenemos que crear etiquetas para los módulos y luego actualizar los externos a estas etiquetas, luego etiquetar el producto y, finalmente, volver a cambiarlo al tronco después.
¿Hay alguna manera más clara de hacerlo? Siéntase libre de comentar también sobre la estructura actual.
Gracias Michael. Sus comentarios reflejan lo que he leído (¡mucho!) Sobre SVN svn: prácticas externas. Estamos haciendo principalmente lo que se ha sugerido: * la mayoría de las veces, el producto se refiere a las ramas de los módulos * antes de una versión, creamos una etiqueta para cada módulo * siguiente, actualizamos las externas para señalarlas etiquetas * finalmente, etiquetamos el producto * y luego cambiamos los externos a las ramas otra vez Esto funciona, pero es muy tedioso y propenso a errores. Esperaba que hubiera una mejor manera ... – Charles