2008-09-25 6 views
7

Esta publicación es similar a this previously asked question. Realmente quiero configurar mi repositorio SVN en formato TTB, pero al crear un proyecto en Visual Studio 2008 (ASP.NET/VB.NET) , la estructura creada tiende a ser incompatible al considerar el archivo de solución, los archivos de proyecto, las carpetas para proyectos, los proyectos múltiples dentro de soluciones, etc. ¿Alguien tiene un script o procedimiento para tomar un proyecto ASP.NET recién creado y moverlo a un TTB formato lo más indolora posible?Estructura de proyectos en control de versiones - .NET específico


Déjame ser más específico. Supongamos que tengo un proyecto que estoy creando llamado StackOverflowIsAwesome. Puedo poner eso en mi estructura de carpetas local (digamos que es c: \ working). Cuando lo creo, VS crea c: \ working \ StackOverflowIsAwesome y un montón de subcarpetas (bin, app_data, etc.). Pero yo quiero que mi estructura del repositorio para que parezca ...

 
StackOverflowIsAwesome 
    /trunk 
     /bin 
     /app_data 
    /tags 
    /branches 

Entonces, ¿hay una forma limpia de hacer esto de forma consistente o tengo que recurrir al constante movimiento/archivos y carpetas de modificación para hacer este trabajo?

Respuesta

0

Si su TTB es común en lugar de por proyecto, no hay ningún problema. ¿O me estoy perdiendo algo?

1

Fuimos con un enfoque muy simplista:

Estructura de archivos:

  • carpeta de soluciones (contiene archivo de solución, los scripts de creación, tal vez más?)
    • Carpeta del proyecto
    • Carpeta del proyecto 2
    • Referencias (contiene una compartida conjuntos para la solución).

Entonces sólo para verificar el contenido de toda la carpeta de soluciones en nuestro repositorio. Usamos un repositorio para cada solución. No estoy seguro de si esta es la forma óptima de organizar la solución, pero funciona para nosotros.

Además, nos ramificamos al más alto nivel, no por proyecto.

+0

Hacemos exactamente lo mismo con grupos de proyectos del tamaño de una solución. También tenemos algunos elementos de proyecto único más pequeños (como bibliotecas comunes). es un TTB por proyecto para estos (el archivo de solución se puede incluir en el directorio del proyecto para solteros, si se desea). – VanSkalen

0

Puede consultar este previous post o este project. El proyecto crea una estructura de árbol de desarrollo .NET (requiere .NET 3.5).

0

Cuando se trata de varios proyectos que conforman una solución de Visual Studio es difícil decidir cómo estructurar las cosas correctamente.

Un aspecto fundamental que tendrá que hacer con su estructura es facilitar la recuperación de todos los archivos para una versión en particular. Es importante hacer esto lo más fácil posible. En subversión, copiar una carpeta raíz a las ramas de etiquetas es más fácil que recordar repetir la misma operación para proyectos X.

Poder trabajar durante períodos prolongados fuera del tronco principal también es importante. Deberás considerar eso también.

Es posible que su software tenga una serie de componentes que se agrupen de forma natural.Podría hacer algo como esto

/tag 

/core_library 
    /branch 
    /main 

/business_logic 
    /branch 
    /main 

/report_library 
    /branch 
    /main 

/my_ui 
    /branch 
    /main 

No hay una respuesta fácil. Lo que haces realmente depende de tu proyecto específico. Si todo sigue saliendo como un lío enredado, entonces tal vez necesites ver cómo está diseñado tu proyecto y ver si eso puede cambiarse para mejorar la comprensión.

-1

lo hago de esta manera:

  1. crear el proyecto en VS
  2. Importación todo en la carpeta del proyecto de repositorio/projectname/tronco
  3. Añadir los repos/ramas y repos/etiquetas carpetas

Eso me da una estructura del repositorio como:

projectname 
    /trunk 
     /bin 
     /obj 
     /Properties 
     projectname.sln 
    /tags 
    /branches 

Y puedo simplemente dejar todos los archivos en sus lugares predeterminados en el sistema de archivos.

1

Otra forma:

StackOverflowIsAwesome 
    /trunk 
    /database 
    /datafiles 
    /documents 
    /build 
    /installer 
    /lib 
     /External_DAL (external that points to shared library) 
    /utilities 
    /vendor 
    /src 
     /StackOverFlowIsAwesome 
     /StackOverFlowIsAwesome.csprj 
     /bin 
     /... 
     /StackOverFlowIsAwesomeTests 
     /StackOverFlowIsAwesomeTests.csprj 
     /bin 
     /... 
    /branches 
    /tags 

Esto sería para cada proyecto. Dado que estamos usando un script de compilación, no necesitamos almacenar nuestro archivo de solución en SVN.

0

Para proyectos más grandes que suelen utilizar este formato aquí:

/Project 
    /trunk 
     /lib/    # Binary imports here (not in svn) 

     /src    # Solution file here 
      /Libraries  # Library assemblies here 
      /StackOverflowIsAwesome.Common 

      /Products  # Delivered products here 
      /StackOverflowIsAwesome.Site 

      /Projects  # internal assemblies here 
      /StackOverflowIsAwesome.Tests 
    /branches 
     /1.x 
    /tags 
     /StackOverflowIsAwesome-1.0 

Dependiendo del proyecto real de archivos que no sean de origen (documentos, etc.) tienen un directorio bajo la raíz del tronco y de los recursos de desarrollo adicionales están bajo src .

Los proyectos independientes se encuentran bajo su propia raíz/Proyecto, pero en el mismo repositorio.

Cuestiones relacionadas