Dump un repositorio SVN desde una URL

A veces es necesario dump un repositorio porque o bien cambias de hosting o quieres hacer un backup de tu svn.

Normalmente un dump se hace con svnadmin, pero si intentas hacerlo con un repositorio remoto, te encontrarás con el siguiente error.

svnadmin dump http://projectname.com/svn > repodump
svnadmin: 'http://projectname.com/svn' is an URL when it should be a path

Pasos a seguir para solucionarlo

1. Crea un repositorio local

svnadmin create /repository

2. Añade un “pre-revprop-change” hook al repositorio local

echo > /repository/hook/pre-revprop-change.cmd
echo '#!/bin/sh' > repository/hooks/pre-revprop-change
chmod +x repository/hooks/pre-revprop-change

3. Sincroniza tu nuevo repositorio con el remoto

svnsync init file:////repository https://projectname.com/svn
svnsync sync file:////repository

Nota: si aparece el siguiente error: “Cannot initialize a repository with content in it” significa que has hecho algunos cambios en el repositorio. Con lo cual tendrás que borrar todo y empezar de nuevo.

4. Una vez que tengas las sincronización hecha, tan solo tienes que hacer el dump a tu repositorio local

svnadmin dump file:////repository > dump