2010-05-21 36 views
15

En mi empresa tenemos algunas aplicaciones web diferentes que comparten algunas bibliotecas comunes. La instalación de Visual Studio se ve así.¿Cómo debo configurar mis proyectos/soluciones de Visual Studio en un repositorio de Mercurial?

 
Website 1 Solution 
    Website 1 
    Shared Library 1 Project 
    Shared Library 2 Project 

Website 2 Solution 
    Website 2 
    Shared Library 1 Project 
    Shared Library 2 Project 

Windows Service Solution 
    Windows Service Project 
    Shared Library 1 Project 
    Shared Library 2 Project 

Shared Library Solution 
    Shared Library 1 Project 
    Shared Library 2 Project 

All Projects Solution 
    Website 1 
    Website 2 
    Windows Service Project 
    Shared Library 1 Project 
    Shared Library 2 Project 

Queremos empezar a usar Mercurial para el control de código fuente, pero todavía no estoy seguro de la mejor manera de hacerlo.

Por lo que he leído se supone que debes usar un repositorio separado para cada proyecto. No hay problema allí, pero ¿dónde van los archivos de solución de Visual Studio (.sln)? ¿Debería haber un repositorio separado con solo un archivo .sln?

Idealmente, los proyectos que usan las bibliotecas compartidas deberían usar la misma versión, y la solución "Todos los proyectos Solución" debería compilarse sin errores, pero a veces necesitamos ramificar las bibliotecas compartidas. ¿Cuál es la mejor manera de hacer esto y cómo se configurarían los repositorios?

¿Cómo obtengo una copia de trabajo de una determinada rama/etiqueta de la solución del sitio web 1 cuando cada proyecto está en un repositorio separado? ¿Tengo que sacar cada uno por separado, o escribir un guión para hacerlo todo de una vez? ¿Puede tortuga hg hacer eso por mí?

¿Alguna otra sugerencia para facilitar este proceso?

+0

¿Alguna vez descubrió esto? También tengo curiosidad. – wtjones

+0

Desafortunadamente no. Cambié de trabajo y en mi nueva compañía utilizan TFS para el control de código fuente, que es más agradable en algunos aspectos, pero también tiene sus propias molestias y limitaciones. –

Respuesta

1

Idealmente, usaría mercurial subrepositories para hacer esto. A continuación, puede poner su solución "todos" en los repositorios principales. El resto de tus proyectos pueden ser subrepos de eso. Mercurial también admite subrepositorios recursivamente.

Desafortunadamente TortoiseHg solo enumera rudimentary support for subrepositories, por lo que es posible que deba tomar algunas decisiones sobre cómo prefiere configurar las cosas.

Si los subrepositores son una carga excesiva, debería estar bien con poner todo en un único repositorio. En lo que respecta a Mercurial, no importa si has dividido cosas en repositorios o no. El único límite es tu situación. Si los proyectos demuestran ser tan grandes o se vuelven demasiado frecuentes, el manejo del repositorio es demasiado doloroso, por ejemplo.

O divida todo en repositorios separados y guíelo. Depende enteramente de ti.

Cuestiones relacionadas