subversion - Cómo mover un repositorio SVN a un nuevo servidor
svn merge branch to trunk (4)
¿Este sería un buen momento para reorganizar también la configuración del repositorio?
Es el momento perfecto para hacerlo, ya que tendrá que tomar su repositorio de todos modos mientras lo migra al nuevo servidor.
Nos gustaría fusionar dos de nuestros servidores juntos y para hacerlo necesitaríamos instalar SVN en el "nuevo" servidor y luego pasar a todos nuestros repositorios que hemos configurado en nuestro "viejo" servidor.
¿Es esta una operación fácil de hacer? ¿Posiblemente usando la opción "Reubicar" que proporciona TortoiseSVN? ¿Cuál es la mejor manera de hacerlo?
¿Este sería un buen momento para reorganizar también la configuración del repositorio?
Si el nuevo servidor usa el mismo sistema operativo, puede copiar la carpeta de repositorio completa al nuevo servidor. No hay necesidad de volcarlo y volver a cargarlo.
El comando de reubicación le permite apuntar su copia de trabajo al nuevo servidor, es decir, no le ayuda a mover el repositorio, simplemente le evita realizar un nuevo proceso de pago.
Externos puede ser un problema pero no tiene que serlo. Si el repositorio externo estaba en el mismo servidor, probablemente haya especificado el externo con una URL relativa. Si el nuevo servidor usa la misma estructura, todo debería funcionar bien.
CLONE-SVN2SVN
Si svnadmin dump
no es una opción, puede usar el script clone-svn2svn bash. Copia un directorio SVN a otro sitio SVN con historial de revisión parcial o completo. A continuación se muestran los principales parámetros de línea de comando. También puede establecer la revisión desde la que desea que el clon comience a copiar el historial.
clone-svn2svn.sh <source-svn-url> <destination-svn-url>
Requisitos
Bash y git son necesarios para que el script funcione. Si está en Windows u otra plataforma, descárguelos desde el sitio web de git-scm . Este es un instalador git con bash incluido.
Detalles
El script descarga el historial SVN de origen a un repositorio git temporal utilizando git-svn
y carga el historial al repositorio SVN objetivo.
Deficiencias
El autor en las revisiones en el repositorio objetivo será el usuario que ejecuta el script (usted mismo). Sin embargo, cada mensaje de revisión tendrá una línea adicional que especificará el autor original. Entonces no es tan malo.
Puede migrar un repositorio usando la función de svnadmin dump
. En el servidor SVN, escriba svnadmin dump /absolute/path/to/the/repo > /tmp/repo.svndump
. Esto exportará todo el repositorio a un archivo de texto en el directorio temporal del sistema y lo llamará "repo.svndump". Es posible que desee comprimir ese archivo antes de transferirlo al nuevo servidor.
Una vez que haya exportado el repo, puede transferir el archivo de volcado al nuevo servidor e importarlo así: svnadmin load /absolute/path/to/the/**new**/repo < repo.svndump
.
Consulte '' svnadmin dump '' y '' svnadmin load '' para obtener más información.
Después de descargar el repositorio y cargarlo en el nuevo servidor, usaría el comando --relocate
para cambiar su copia local al nuevo servidor.
Precaución: si sus repositorios usan elementos externals
entonces tendrá algunos problemas. Vea mi pregunta en Server Fault para detalles sobre esto.