Close

Preparar

El primer paso para migrar un proyecto de SVN a un control de versiones basado en Git es preparar la máquina local del responsable de la migración. En esta fase, descargarás un script de utilidad, montarás un sistema de archivos que distinga entre mayúsculas y minúsculas (si es necesario) y asignarás la información de autor de SVN a Git.

Todos los pasos siguientes se deben realizar en el equipo local del responsable de la migración.


Descarga el script de migración


Git incluye la mayoría de las herramientas necesarias para importar un repositorio SVN; sin embargo, faltan algunas funciones que Atlassian ha incorporado en un práctico archivo JAR. Este archivo será fundamental para la migración, así que asegúrate de descargar svn-migration-scripts.jar desde la cuenta de Bitbucket de Atlassian. En esta guía se da por hecho que lo has guardado en tu directorio principal. Información importante: para la migración de SVN, se necesita un sistema de archivos que distinga entre mayúsculas y minúsculas, y esto no funciona en NTFS. Te sugerimos que lo utilices en un equipo con Linux.

Una vez que lo hayas descargado, es recomendable que verifiques los scripts para asegurarte de que tienes instalados Java Runtime Environment, Git, Subversion y la utilidad git-svn. Abre el símbolo del sistema y ejecuta este comando:

java -jar ~/svn-migration-scripts.jar verify

Esto mostrará un mensaje de error en la consola si no tienes los programas necesarios para el proceso de migración. Asegúrate de que el software que falta esté instalado antes de continuar.

bases de datos
Material relacionado

Cómo mover un repositorio de Git completo

Logotipo de Bitbucket
VER LA SOLUCIÓN

Aprende a usar Git con Bitbucket Cloud

Si recibes una advertencia que indica que no es posible determinar una versión, ejecuta export LANG=C (*nix) o SET LANG=C (Windows) e inténtalo de nuevo.

Si estás haciendo la migración en un equipo con OS X, también verás la siguiente advertencia:

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

Hablaremos de ello en el apartado siguiente.

Monta una imagen de disco que distinga entre mayúsculas y minúsculas


La migración a Git debe hacerse en un sistema de archivos que distinga entre mayúsculas y minúsculas para evitar dañar el repositorio. Esto supone un problema si la migración se hace en un equipo con OS X, ya que el sistema de archivos de OS X no distingue entre mayúsculas y minúsculas.

Si no tienes instalado OS X, todo lo que tienes que hacer es crear un directorio en tu máquina local llamado ~/GitMigration. Aquí es donde harás la conversión. Después de eso, puedes pasar a la siguiente sección.

Migración de Git: montar una imagen de disco

Si tienes OS X, debes montar una imagen de disco que distinga entre mayúsculas y minúsculas con el script create-disk-image incluido en svn-migration-scripts.jar. Se necesitan dos parámetros:

1. El tamaño de la imagen de disco que se va a crear en gigabytes. Puedes usar el tamaño que quieras, siempre y cuando sea más grande que el repositorio SVN que intentas migrar.

2. The name of the disk image. This guide uses GitMigration for this value.

Por ejemplo, el siguiente comando crea una imagen de disco de 5 GB llamada GitMigration:

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

La imagen de disco está montada en el directorio principal, por lo que ahora deberías ver un directorio llamado ~/GitMigration en tu equipo local. Esto sirve como un sistema de archivos virtual que distingue entre mayúsculas y minúsculas, y es donde almacenarás el repositorio de Git convertido.

Extrae la información de autor


SVN solo registra el nombre de usuario del autor en cada revisión. Sin embargo, Git almacena el nombre completo y la dirección de correo electrónico del autor. Esto significa que necesitas crear un archivo de texto que asigne los nombres de usuario de SVN a sus equivalentes en Git.

Migración de Git: asignar los nombres de usuario de SVN a nombres de usuario de Git

Ejecuta los siguientes comandos para generar automáticamente este archivo de texto:

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Sustituye por el URI del repositorio SVN que quieres migrar. Por ejemplo, si tu repositorio residía en https://svn.example.com, podrías ejecutar lo siguiente:

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Esto crea un archivo de texto llamado authors.txt que contiene el nombre de usuario de cada autor en el repositorio SVN junto con un nombre y una dirección de correo electrónico generados. Debería verse como esto:

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Cambia la parte a la derecha del signo igual por el nombre y la dirección de correo electrónico completos del usuario correspondiente. Por ejemplo, podrías cambiar los autores anteriores a:

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Resumen


Ahora que tienes tus scripts de migración, la imagen de disco (solo SO X) y la información de autor, estás listo para importar tu historia de SVN a un repositorio Git nuevo. La próxima fase explica cómo funciona esta conversión.


Compartir este artículo
Tema siguiente

Lecturas recomendadas

Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.

Gente que colabora utilizando un muro lleno de herramientas

Blog de Bitbucket

Ilustración de Devops

Ruta de aprendizaje de DevOps

Demostraciones de funciones con expertos de Atlassian del Centro de demostraciones

Cómo funciona Bitbucket Cloud con Atlassian Open DevOps

Suscríbete para recibir el boletín de DevOps

Thank you for signing up