2009-06-17 17 views
8

Actualmente, tengo una gran repositorio SVN con un montón de diferentes proyectos dentro de ella, de la siguiente manera:¿Copia parte del repositorio SVN a nuevo repositorio?

/ 
Project1/ 
      trunk/ 
      tags/ 
      branches/ 
Project2/ 
      trunk/ 
      tags/ 
      branches/ 
Project3/ 
      (etc...) 

Sin embargo, ahora estoy tratando de dividirla en repositorios separados (por diversas razones), y Me gustaría lo siguiente para cada proyecto:

/ 
trunk/ 
tags/ 
branches/ 

Si es posible, todo el historial y los elementos externos deben permanecer intactos. Sin embargo, no estoy seguro si esto realmente se puede hacer. He visto varias preguntas similares a esta en SO, pero ninguna aborda completamente el problema que tengo aquí. Básicamente, estoy tratando de "sacar" un subdirectorio y todo su contenido con el historial del antiguo repositorio y colocar todo en su propio (nuevo) repositorio.

¿Estoy preguntando lo imposible?

+0

Gran pregunta +1. Debe ser posible. Sin embargo, probablemente tendrá un aneurisma antes del final. –

+0

"No relacionado con la programación" - J/K, me estoy molestando con este tipo de comentarios, y necesito desahogarme :) +1 y preferir :) – cwap

Respuesta

9

Uso

svnadmin dump path/to/repository > repo.dmp 

y luego usar svndumpfilter cargar sólo un sub-árbol en un nuevo repositorio.

+0

Sí ... eso es lo que quiero decir para decir :) –

+1

Gracias Stefan (y John), esto me llevó a http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.filtrar las direcciones mi problema exacto –

+0

Tenga en cuenta que esta solución deja 'ProjectN' como el directorio de nivel superior del nuevo repositorio. (Es decir, todas las rutas comienzan con 'ProjectN /'). El enlace indica cómo importar el nuevo repositorio sin el prefijo, pero debe editar el volcado a mano, lo que con grandes repositorios o archivos binarios no es práctico. – xOneca

4

Desde SVN 1.7 se puede utilizar

svnrdump dump path/to/repository > dump 

para obtener el volcado. Si bien la solución Stefans funciona, sí requiere acceso al servidor para alojar el repositorio. svnrdump funciona en la red con cualquier repositorio desde el que puedas leer.

Cuestiones relacionadas