tutorial tortoise subir repositorio proyecto create crear con como clonar archivos svn

svn - tortoise - ¿Puedo mover un repositorio de Subversion existente a un nuevo repositorio principal(y conservar el historial)?



tortoise svn server (4)

Debería poder volcarlo, luego volver a cargarlo en un subdirectorio de un nuevo repositorio:

svnadmin dump http: // oldrepo / > mydump

svnadmin load --parent-dir mi / nueva / carpeta http: // newrepo / <mydump

Actualmente tengo un repositorio de nivel raíz configurado para cada proyecto, así:

Project1 Project2 Project3 Project5 Project5

Me gustaría reorganizar esto para que en lugar de un repositorio para cada proyecto individual, solo tenga uno para cada agrupación lógica, y luego los proyectos serían simplemente carpetas dentro de esos ''repositorios de grupo'', por ejemplo:

WebSites Project1 Project2 DesktopApps Project3 Libraries Project4 Project5

¿Es esto posible a la vez que conserva el historial de los repositorios existentes? He buscado bastante, pero todo lo que puedo encontrar es información sobre mover carpetas dentro del mismo repositorio y mover las carpetas de un repositorio a un nuevo repositorio.

Es solo para cosas personales de todos modos, así que no es el fin del mundo si es solo un ''no'' directo, pero sería bueno saberlo, así que no me estoy golpeando la cabeza contra la pared :)



Puede usar sastre para importar las revisiones al nuevo repositorio. Comprueba el código del repositorio anterior una revisión tras otra y lo confirma en el nuevo repositorio.

Esto también se puede usar para convertir el historial de un tipo de sistema de control de versiones en otro.

Un archivo de proyecto de sastre se vería así:

[DEFAULT] root-directory = /var/tmp/tailor verbose = true [myproject] source = svn:oldrepo target = svn:newrepo start-revision = INITIAL [svn:oldrepo] repository = svn://oldhost.example.com/svnroot module = trunk subdir = repo-in [svn:newrepo] repository = svn://newhost.example.com/some/path module = trunk subdir = repo-out

Si este archivo se llama settings.cfg , esto copiará /trunk de la revisión de repositorio anterior por revisión a la nueva ubicación:

tailor --configfile=settings.cfg myproject

El repositorio de destino debe existir ya y probablemente debería tener un subdirectorio de trunk vacío.


Dado que la respuesta aceptada es incompleta y no se ha corregido, así es cómo lo hace.

(1) El repositorio de origen es un repositorio de proyecto único, con directorio de nivel superior. Ve a tu antiguo servidor y crea un archivo de volcado:

[old-server]$ svnadmin dump /path/to/old-repo > foo.dump

(2) Su repositorio objetivo ya contiene dos proyectos, con los directorios de nivel superior bar y baz , y está en http://new-server/svn . Ahora crea un nivel superior foo adicional:

[client]$ svn ls http://new-server/svn/ bar/ baz/ [client]$ svn mkdir -m "Adding new foo project" http://new-server/svn/foo [client]$ svn ls http://new-server/svn/ bar/ baz/ foo/

(3) En su nuevo servidor, el repositorio está en /path/to/new-repo (que es a qué http://new-server/svn/ maps to). Tenga en cuenta que el svn mkdir arriba no creó un nuevo directorio en /path/to/new-repo ; simplemente cambió la base de datos. Ir al nuevo servidor y

[new-server]$ svnadmin load /path/to/new-repo --parent-dir foo < foo.dump

Hecho, con historia completa. Ahora puedes ver a foo como:

[client]$ svn co http://new-server/svn/foo foo

Si esta es la primera vez que hace un svnadmin , puede encontrar que obtiene errores de permiso de archivo ( txn-current-lock / etc) si, por ejemplo, el repositorio es propiedad de apache , y usted no está en el grupo apache La solución más fácil es apache grupo apache .