2009-09-16 19 views
6

¿Puede alguien señalarme en la dirección correcta para migrar un repositorio de Subversion 1.4 a Subversion 1.6 en un servidor diferente? Agradecería cualquier ayuda que pueda obtener, no estoy teniendo mucha suerte para buscar en Google.Migrar de Subversion 1.4 a 1.6

+0

Para elaborar, ya he intentado hacer un volcado de 1.4 y cargarlo en 1.6 (eso está en el libro rojo de subversión e incluso he hecho esto antes con éxito entre servidores v1.4). Cuando intento cargar el archivo v1.4 en un servidor v1.6, aparece un error sobre el formato del encabezado del archivo de volcado. Por lo que he leído, el diseño del repositorio ha cambiado entre 1.4 y 1.6 –

+0

Para seguir elaborando una vez más, estos dos servidores están en diferentes máquinas con diferentes sistemas operativos. El servidor 1.4 es una antigua caja de gentoo que es crítica para la misión y no se puede actualizar sin un riesgo grave de romper algo (que estamos trabajando para migrar) y la nueva caja 1.6 ejecuta subversión en Windows Server 2003. También tengo no tengo control sobre la nueva caja, el administrador de la red solo me permite temporalmente acceder a ella e instalar el nuevo repositorio para el servidor que ya tiene configurado. –

Respuesta

7

En primer lugar, no estoy 100% seguro de que puede mover un archivo de volcado libremente entre Linux y Windows. Puede que tenga que convertir los finales de línea.

A continuación, primero debe intentar mover el repositorio en formato 1.4 y luego actualizarlo en su lugar. Una manera de hacer eso, en la máquina objetivo:

svnadmin create --pre-1.5-compatible /path/to/repo 
svnadmin load /path/to/repo <dumpfile 
svnadmin upgrade /path/to/repo 

Véase el SVN book para los detalles de svnadmin.

+0

Eso hizo el truco. Gracias amablemente por su ayuda, es muy apreciado. –

+0

El formato de volcado es independiente de la plataforma. De modo que puede mover el archivo de volcado de forma segura entre Linux y Windows. – Stefan

+0

@Stefan: Gracias, pensé que era, pero no estaba seguro. – Avi

0

Asegúrese de que está tratando ese archivo de volcado como un archivo binario. Se ve como un archivo de texto y puedes salirte con la tarea de editarlo de varias maneras ... pero no es solo texto. Entonces, si ha ocurrido una conversión de nueva línea durante la transferencia o algo, terminaría con un desastre.

2

Lo hicimos de una manera ligeramente diferente: creamos un nuevo repositorio y utilizamos svnsync para crear un espejo del repositorio. Éste debe usarse como de solo lectura hasta el momento en que desee cambiar. A continuación, agregue ganchos al antiguo repositorio para prohibir las confirmaciones (idealmente mostrar y mensaje de error para indicar a los usuarios que se reubiquen en el nuevo repositorio). svnsync por última vez y activar el nuevo repositorio. Esto fue mucho más rápido que el dumping y más eficiente, ya que pudimos ponernos al día y sincronizar los últimos cambios en los viejos repositorios.

+0

También puede realizar volcados y cargas incrementales. – retracile

+0

Esto fue menos un dolor para nosotros, por ejemplo. uno de nuestros 1.4 repos tenía un espacio en disco de> 32 GB (svn diff comprimido) ¡entonces puede imaginarse el tamaño del volcado! :-) – jdehaan