Migrar repositorio SVN a GIT

CN Camilo Nova Camilo Nova

Camilo Nova

CEO
1 min read.
Subscribe newsletter
GIT

Estos 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

CN Camilo Nova Camilo Nova

Software Engineer, Investor, CEO, and father of two. Camilo writes on the intersection of technology, design, and business.

Join our newsletter to keep in touch: No SPAM

Read more

Visualización THD

Aquí tenemos otra visualización de nuestro trabajo al desarrollar proyectos, en esta oportunidad fue un proyecto de dos meses...

1 min read.

Notas basicas sobre GIT

El siguiente es un compilado de comandos básicos que utilizamos para comenzar a trabajar con GIT:#Servergit init --bare repos...

1 min read.

DevOps

Hemos hablado bastante sobre las características y habilidades de los desarrolladores en AxiaCore, ayer puntualmente identifi...

1 min read.

Build Once. Own Forever.