respaldos how svn dump svnadmin

how - respaldos svn



Svnadmin load from dumpfile causa "error de archivo no encontrado". ¿Ayuda? (5)

Acabo de experimentar este error, que rastreé hasta una actualización reciente del servidor y un ciclo de svnadmin dump/load . El problema era que había configurado el repositorio en un directorio diferente al que se creó en.

En la máquina antigua, estaba usando inetd.conf para ejecutar svnserve :

svnserve -r /var/svn/main

y el repositorio estaba en / var / svn / main

Sin embargo, en la nueva máquina tuve inetd.conf apuntando a /var/svn :

svnserve -r /var/svn

Ya tuve un checkout del servidor antiguo, así que cuando intenté confirmar la ruta de destino no existía porque accidentalmente había agregado otro componente a la URL, por lo que svn://host/source/trunk convirtió en svn://host/main/source/trunk .

Podría haberlo solucionado moviendo los directorios, pero en su lugar elegí volver a escribir la URL de la copia de trabajo utilizando svn switch --relocate .

Nota: un diagnóstico rápido para ver si este es el problema es cambiar a un directorio en su copia de trabajo, escriba svn info para obtener la URL del repositorio y luego escriba svn ls <myUrl> . Si esto da un error No repository found entonces usted sabe que esta es la causa.

Dado:

Repository_1 - fuente

Repositorio_2 - destino

Creé un archivo de volcado de Repository_1 / Folder1 usando la combinación de svnadmin y svndumpfilter

Al cargar desde el archivo de volcado del Repositorio_1 / Carpeta1 al Repositorio_2 / Troncal, todo está bien PERO

Al cargar desde Repository_1 / Folder1 / Sub-folder (se creó otro volcado para esto) en Repository_2 / trunk, aparece el siguiente error:

svnadmin: File not found: transaction ''267-89'', path ''trunk/Folder1/Sub-folder''

¿Alguien puede explicar?


Como se indica en este hilo , svnrdump funciona de manera diferente a svndump .

svndump + svndumpfilter :

  • Vuelca todo el historial del repositorio, luego filtra las cosas que deseas. Esto lleva mucho tiempo en los repositorios grandes, incluso si solo está tomando un pequeño subárbol.
  • Produce un archivo de volcado que probablemente se rompe de varias maneras, como crear archivos en directorios que no existen o copiar archivos de rutas que no existen.

svnrdump :

  • Produce un dumpfile autoconsistente.
  • Requiere una ruta secundaria si desea hacer el equivalente de svndumpfilter include . Por ejemplo, svnrdump https://server.example.com/svn/repo/branches/1.4 tomaría todas las revisiones que afectan a /branches/1.4.
  • Puede requerir un adicional | svndumpfilter include / --drop-all-empty-revs --renumber-revs | svndumpfilter include / --drop-all-empty-revs --renumber-revs .

En svnrdump : svnrdump probablemente funcionará mejor.


La carga del volcado falla porque la creación de trunk/Folder1 fue filtrada por svndumpfilter. Según esta publicación del blog , estos pasos son necesarios en el vertedero:

Puede crear un tronco / Carpeta1 en el volcado, editando el volcado y agregando a la primera revisión el siguiente bloque:

Node-path: trunk/Folder1 Node-action: add Node-kind: dir Prop-content-length: 10 Content-length: 10 PROPS-END

Este bloque debe insertarse en los bloques de propiedades de la primera revisión.

Entonces el volcado se puede cargar con svnadmin.


Resulta que la estructura (carpetas vacías) en destino necesita crearse previamente. Entonces, si quieres hacer esto:

Al cargar desde Repository_1 / Folder1 / Sub-folder (se creó otro volcado para esto) en Repository_2 / trunk

necesitas crear esta estructura en svn

Repository_2 / trunk / Folder1

nota: solo necesita crear los padres, no la carpeta en sí, así que NO CREAR Repository_2 / trunk / Folder1 / Sub-folder


obtendrá este error si alguien copió algo de trunk / Folder1 to trunk / Folder1 / Sub-folder. ya que solo ha incluido tronco / Carpeta1 / Subcarpeta en su volcado, ya no puede encontrar los archivos requeridos desde el tronco / Carpeta1 y se detiene con este error.

para resolver esto, debe asegurarse de incluir todo en el volcado que ha sido la fuente de una copia.