2010-02-02 20 views
5

Actualmente estoy trabajando en un proyecto que tiene componentes en perl, .NET, C/C++ y Java. Estos componentes están relacionados entre sí, pero no están vinculados al mismo calendario de publicación. Debido a los muy diferentes requisitos del entorno de compilación/prueba, agruparlos todos en la misma jerarquía/bin/src/lib/etc/tests es un poco difícil de manejar.¿Organizar un proyecto que usa varios idiomas?

¿Cuáles son algunas buenas jerarquías organizativas para usar en el control de código fuente cuando se trata de un proyecto de esta naturaleza? Actualmente estoy inclinando hacia cada idioma tiene su propia rama:

repo/proyecto 1/Perl/main/...

repo/proyecto 1/.NET/main/...

repo/proyecto1/Java/main/...

¿Cómo cambiaría la jerarquía recomendada si tuvieran un calendario de lanzamientos atados?

+1

Parece que estás en el camino correcto ... –

Respuesta

2

Creo que lo que has presentado está en juego. Si libera el proyecto como un todo con todos los componentes en lugar de liberar cada componente por separado, entonces podría usar svn: externals en diferentes repositorios o repositorios completamente diferentes, luego simplemente asociar la compilación a través de externo con la última versión etiquetada compatible de un componente . O si usa git, entonces use submódulos para hacer más o menos lo mismo.

/repo/project1 
    trunk/ 
    svn:external .Net /repo/project1/components/.Net 
    svn:external perl /repo/project1/components/perl 
    svn:external Java /repo/project1/components/Java 
    -- other integration code or what have you -- 
    tags/ 
    branches/ 
    components/ 
    .Net/ 
     trunk/ 
     tags/ 
     branches/ 
    Java/ 
     trunk/ 
     tags/ 
     branches/ 
    perl/ 
     trunk/ 
     tags/ 
     branches/ 

La estructura exacta dependerá del flujo de trabajo y exactamente cómo los componentes están integrados, pero se entiende la idea.

Cuestiones relacionadas