Svnadmin load from dumpfile causa "error de archivo no encontrado". Ayuda?


Dado:

Repository_1-source

Repository_2-destination

He creado un archivo de volcado de Repository_1 / Folder1 usando la combinación de svnadmin y svndumpfilter

Al cargar desde el archivo de volcado desde Repository_1 / Folder1 en Repository_2 / Trunk todo está bien PERO

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

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

¿Alguien puede explicarlo?

Author: Chicago, 2010-03-02

5 answers

Resulta que la estructura(carpetas vacías) en destino necesita ser pre-creada. Tan, Si quieres hacer esto:

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

Necesita crear esta estructura en svn

Repository_2 / trunk / Folder1

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

 34
Author: Chicago,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 17:06:50

Obtendrá este error si alguien copió algo de trunk/Folder1 a trunk/Folder1/Subcarpeta. dado que solo ha incluido la subcarpeta trunk/Folder1/en su volcado, ya no puede encontrar los archivos requeridos de trunk/Folder1 y se detiene con este error.

Para resolver esto tendrá que asegurarse de incluir todo en el volcado que ha sido la fuente de una copia.

 1
Author: stmax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-01 22:17:06

Acabo de experimentar este error que rastreé a una actualización reciente del servidor y un ciclo 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 tenía inetd.conf apuntando a /var/svn:

svnserve -r /var/svn

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

Podría haberlo arreglado moviendo los directorios, pero elegí reescribir la URL de la copia de trabajo usando 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 sabes que esto es causa.

 1
Author: the_mandrill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-28 21:13:37

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 desea. Esto lleva mucho tiempo en repositorios grandes, incluso si solo estás agarrando un pequeño subárbol.
  • Produce un archivo de descarga que probablemente está roto de varias maneras, como crear archivos en directorios que no existen o copiar archivos de rutas que no existen existir.

svnrdump:

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

En pocas palabras: svnrdump probablemente funcionará mejor.

 1
Author: Chris Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-03 23:03:41

La carga del volcado falla porque trunk/Folder1 la creación fue filtrada por svndumpfilter. De acuerdo con esta entrada de blog , estos pasos son necesarios en el volcado:

Puede crear trunk / Folder1 en el volcado, editando el propio volcado y añadiendo 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 props de la primera revisión.

Entonces el volcado se puede cargar con svnadmin.

 0
Author: CharlesB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 13:36:01