Migrar repositorio SVN a GIT

CN Camilo Nova Camilo Nova

Camilo Nova

CEO
1 min read.

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

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.

Newsletter

Subscribe to our newsletter:

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.