¿Cómo puedo transferir repositorios SVN desde VisualSVN Server (Windows) a Apache SVN (Linux) correctamente?

¿Cómo puedo transferir repositorios SVN desde VisualSVN Server (Windows) a Apache SVN (Linux) correctamente?

Mi objetivo es transferir repositorios SVN antiguos desde un servidor Windows VisualSVN a un servidor Linux Apache SVN. El primer paso fue realizar un volcado de todos los repositorios con el comando svnadmin dump. Después de eso cargué esos volcados en mi servidor Linux. No hubo errores al importar los repositorios. Sin embargo, para algunos archivos aparece un error interno del servidor 500 al realizar cambios en ellos.

Para comprobar qué está mal, abrí algunos de los archivos que generaron el error en mi navegador web. Descubrí que varias últimas líneas de estos archivos están dañadas. No se pierden datos, pero hay caracteres extraños al final del archivo. Se muestran mediante: “???” en mi navegador web.

Intenté realizar varias exportaciones, pero todas causarán el mismo problema. ¿Es posible corregir el repositorio o volcar? ¿Tiene alguna idea de cómo puedo evitar que esto suceda?

Respuesta1

  • AFAICR, hubo algunos cambios en la estructura|datos|almacenamiento del repositorio hace algunas versiones: será más a prueba de balas, si la versión de Subversion bajo el capó para VisualSVN Server y el lado de Apache será la misma (es decir, actualizar VisualSVN Server, si necesario)
  • Desde FS-view, el repositorio en VisualSVN Server y Apache de Linux son iguales: solo directorios con archivos y algunos archivos que no son de repositorio. Por lo tanto, en el caso más sencillo, puede simplemente copiar el árbol de RepoRoot al nuevo servidor (arreglar el propietario y los permisos de acuerdo con los nuevos requisitos del sistema operativo), agregar el archivo passwd (antiguo) (si es necesario), colocarlo fuera del árbol de repositorio y authz (antiguo). -file (si es necesario), migre la parte relacionada con svn desde httpd.conf de VisualSVN Server al nuevo entorno (aplicando todos los cambios necesarios, principalmente relacionados con la ruta) y tenga repositorios en la nueva ubicación

PD: yorealizadomigraciones tan perezosas de "copiar y pasar" sin grandes dolores de cabeza

Error 500 interno del servidor al confirmar

puede tener dos razones principales: base de usuarios no migrada y ACL olvidadas en el archivo de autenticación (probablemente faltante o vacío); los volcados de repositorios no transfieren estos archivos

información relacionada