2009-07-30 19 views
7

Estoy tratando de encontrar la mejor manera de estructurar nuestros repositorios de Subversion inicialmente.Cómo estructurar los repositorios de Subversion

¿Es una buena práctica crear un repositorio inicial y luego repositorios para cada proyecto debajo?

¿Y qué repositorios deberían tener un tronco, rama, etc. creados?

Además, me parece que es una buena práctica no crear carpetas troncales, sucursales y etiquetas en el repositorio raíz.

Sé que cuando estaba en otro equipo, tiramos de decir ProjectA pero no abría un tronco, las carpetas de las ramas eran bonitas, pero no sé cómo se estructuraron en el servidor para que esto ocurra así. .

+0

reetiquetado con 'svn' en lugar de 'tortoisesvn' ya que este es un tema/del lado cortar repositorio, no es una cuestión del lado del cliente . –

Respuesta

8

Para evitar futuros dolores de cabeza de mantenimiento, a menos que tenga GRANDES cantidades de código, o imagine querer eliminar por completo un proyecto con una gran cantidad de código, mantenga todo en un repositorio. Luego crea directorios para cada proyecto. Luego, si desea seguir las recomendaciones de Subversión, coloque las carpetas "troncal", "ramas" y "etiquetas" debajo de la carpeta de cada proyecto.

+0

así que cuando creo una subcarpeta para un proyecto, copio la URL, voy a esa carpeta localmente y luego ¿cómo la cableo a la carpeta troncal que creé en el servidor debajo de la carpeta de mi proyecto? – PositiveGuy

+0

Al configurar un nuevo repositorio esto es lo que hago. Creo el repositorio global, con una URL como "http://example.com/svn/". Lo compruebo en una nueva carpeta local, I.E. "example-svn" (lo que quieras). Ahora, "example-svn" es una Copia de Trabajo de todo el repositorio. Si desea configurar carpetas troncales/ramas/etiquetas, cree una nueva carpeta dentro de "example-svn" para "project1", y dentro de esa carpeta cree "trunk", "branches" y "tags". Luego, pegue todos los archivos para project1 en "trunk", haga clic derecho en "project1" y seleccione "Add". Comprometerse y listo. – Nicole

+0

En el ejemplo anterior, si desea consultar todo el repositorio (todos los proyectos), usaría "http://example.com/svn/".Si desea ver solo project1, use "http://example.com/svn/project1" – Nicole

14

si desea mantener varios proyectos en el repositorio me inclinaría por esta estructura

/project1 
    /trunk 
    /branches 
    /tags 
/project2 
    /trunk 
    /branches 
    /tags 
... 

Si desea mantener sólo un proyecto esto va a hacer:

/trunk 
/branches 
/tags 
+0

Gracias. Entonces, si tuviera que registrar el proyecto1 por primera vez, obtendría la URL de la carpeta del tronco Project1 \ y la usaría, ¿verdad? – PositiveGuy

+0

si quieres trabajar en project1, simplemente utilizarás algo como 'svn: // path.to.your.repo/project1/trunk' para tu checkout – RaYell

+0

exactamente, ¡gracias! – PositiveGuy

4

Subversion book al rescate .

+0

sí, y está lleno de información para confundirte aún más. He pasado por eso y no da mejores prácticas como esta. – PositiveGuy

+3

Descubrí que despejó muchas cosas para mí. La respuesta de RaYell es casi directamente de las recomendaciones de libros. –

1

La conservación de repositorios separados le permite personalizar las planificaciones de copia de seguridad y las ubicaciones de almacenamiento por repositorio. Además, si de vez en cuando tiene que profundizar en el repositorio y realizar algunas acciones de mantenimiento o limpieza (por ejemplo, desea eliminar una confirmación del repositorio completamente ... raro pero posible) mantener repositorios separados le permitirá hacerlo con la mínima interferencia a otros usuarios y otros repositorios.

Dicho esto: para proyectos pequeños, estas cosas generalmente no son una gran preocupación. Doy otra recomendación abundante a la configuración trunk/branches/tags.

5

Prefiero los repositorios estructurados, muy organizados y muy organizados. Hay un diagram que ilustra el enfoque general (ideal) del proceso de mantenimiento del repositorio. Por ejemplo, mi estructura inicial del repositorio (cada repositorio del proyecto debe tener) es:

/project 
    /trunk 
    /tags 
     /builds 
      /PA 
      /A 
      /B 
     /releases 
      /AR 
      /BR 
      /RC 
      /ST 
    /branches 
     /experimental 
     /maintenance 
      /versions 
      /platforms 
     /releases 
Cuestiones relacionadas