Migrar repositorio SVN a GIT
Camilo Nova
CEOEstos son los pasos para realizar la migración de un repositorio subversion a git:
# Creamos el repositorio en el servidor remoto
git init --bare repos/{repo}.git #repo es el nombre del repositorio, se ejecuta en la raiz del servidor GIT
cd repos/{repo}.git/
echo "http://example.com/proyecto.git" > cloneurl
echo "Una buena descripcion del proyecto" > description
git config gitweb.owner 'AxiaCore'
git config http.receivepack true
# En nuestra maquina local
# -------------------------------------
# Instalamos el paquete de ubuntu
sudo apt-get install git-svn
# Carpetas donde vamos a obtener el proyecto
mkdir migration
cd migration
# Inicializamos el repositorio git para svn (Sin los datos no necesarios de svn)
git svn init http://svn.example.com/myproject --no-metadata
# Creamos un archivo que relacione los usuarios de subversion con los de git
# Ejecutamos esto con cada usuario del repositorio
echo "camilo = Camilo Nova <camilo.nova@axiacore.com>" >> users.txt
# Le indicamos a git donde encontrar la relacion de usuarios
git config svn.authorsfile users.txt
# Obtenemos todas las revisiones de svn y las interpretamos para git (puede demorar mucho tiempo)
# Puede que se bloquee o se interrumpa porque falta algun usuario, al volver a ejecutar el comando el continua desde
# la ultima revision obtenida
git svn fetch
# Subimos un nivel
cd ..
# Clonamos el repositorio nuevamente para que sea totalmente git
git clone migration myproject
# Entramos al repositorio git
cd myproject
# Borramos la referencia local del origen del repositorio
git remote rm origin
# Agregamos la referencia remota del origen
git remote add origin http://example.com/proyecto.git
# Enviamos el repositorio al servidor remoto (puede demorar un poco)
git push origin master
# Verificamos que todo haya cargado correctamente
git log
# Borramos la carpeta de la migracion
cd ..
rm -rf migration
# Para terminar, damos gracias por ser tan inteligentes :)
Nosotros realizamos la migracion de todos nuestros repositorios subversion a git, esto nos dio bastante trabajo, pero estamos felices con el resultado.
Si tienes problemas para migrar el repositorio ve a: http://help.github.com/svn-importing/
Written by Camilo Nova
As the Axiacore CEO, Camilo writes about the intersection of technology, design, and business. With a strategic mindset and a deep understanding of the industry, he is dedicated to helping companies grow.