svnadmin dump
y svnadmin load
.
Estos dos comandos usan un sencillo formato de volcado consistente en cabeceras
RFC 822 (como los headers en e-mail) que son sencillos de analizar y en los contenidos en bruto de los ficheros
del repositorio. Una copia por volcado y carga nos protege también contra posibles cambios en la versión de la
librería DBD subyacente.
-bash-3.2$ uname -a Linux banot.etsii.ull.es 2.6.18-128.1.16.el5 #1 SMP Tue Jun 30 06:10:28 EDT 2009 i686 i686 i386 GNU/Linux -bash-3.2$ svnlook youngest repository/ 6 -bash-3.2$ svnadmin dump repository/ > dumprep.6 * Revisión 0 volcada. * Revisión 1 volcada. * Revisión 2 volcada. * Revisión 3 volcada. * Revisión 4 volcada. * Revisión 5 volcada. * Revisión 6 volcada. -bash-3.2$ ls -ltr | tail -1 -rw-r--r-- 1 casiano apache 14962 abr 3 18:29 dumprep.6
Para restaurar el repositorio en otra máquina debemos primero crear el repositorio y a continuación
cargarcon svnadmin load
el fichero volcado en la operación anterior:
pp2@nereida:~$ ssh banot cat dumprep.6 | svnadmin load mietsiirep <<< Nueva transacción iniciada, basada en la revisión original 1 * añadiendo ruta : acme-svn ... hecho. * añadiendo ruta : acme-svn/branches ... hecho. * añadiendo ruta : acme-svn/trunk ... hecho. * añadiendo ruta : acme-svn/trunk/Build.PL ... hecho. * añadiendo ruta : acme-svn/trunk/Changes ... hecho. * añadiendo ruta : acme-svn/trunk/MANIFEST ... hecho. * añadiendo ruta : acme-svn/trunk/Makefile.PL ... hecho. * añadiendo ruta : acme-svn/trunk/README ... hecho. * añadiendo ruta : acme-svn/trunk/lib ... hecho. * añadiendo ruta : acme-svn/trunk/lib/Acme ... hecho. * añadiendo ruta : acme-svn/trunk/lib/Acme/SVN.pm ... hecho. * añadiendo ruta : acme-svn/trunk/t ... hecho. * añadiendo ruta : acme-svn/trunk/t/00.load.t ... hecho. * añadiendo ruta : acme-svn/trunk/t/perlcritic.t ... hecho. * añadiendo ruta : acme-svn/trunk/t/pod-coverage.t ... hecho. * añadiendo ruta : acme-svn/trunk/t/pod.t ... hecho. ------- Commit de la revisión 1 >>> <<< Nueva transacción iniciada, basada en la revisión original 2 * añadiendo ruta : acme-svn/branches/myacme-svn ...COPIED... hecho. ------- Commit de la revisión 2 >>> <<< Nueva transacción iniciada, basada en la revisión original 3 * editando ruta : acme-svn/trunk/Makefile.PL ... hecho. ------- Commit de la revisión 3 >>> <<< Nueva transacción iniciada, basada en la revisión original 4 * editando ruta : acme-svn/trunk/Makefile.PL ... hecho. ------- Commit de la revisión 4 >>> <<< Nueva transacción iniciada, basada en la revisión original 5 * editando ruta : acme-svn/branches/myacme-svn/Makefile.PL ... hecho. ------- Commit de la revisión 5 >>> <<< Nueva transacción iniciada, basada en la revisión original 6 * editando ruta : acme-svn/trunk/Makefile.PL ... hecho. ------- Commit de la revisión 6 >>>
Ahora el nuevo repositorio puede ser accedido desde cualquier otra máquina:
casiano@orion:~$ svn ls svn+ssh://pp2/home/pp2/mietsiirep acme-svn/ casiano@orion:~$ svn ls svn+ssh://pp2/home/pp2/mietsiirep/acme-svn branches/ trunk/ casiano@orion:~$ svn ls svn+ssh://pp2/home/pp2/mietsiirep/acme-svn/trunk Build.PL Changes MANIFEST Makefile.PL README lib/ t/
Casiano Rodríguez León