Hay varias ventajas y facilidades que nos ofrece GIT sobre SVN, las que nos llevan a tomar la decisión de usar esta magnifica herramienta. Pero que hacemos con todo el proyecto que llevamos sub versionando en nuestro repositorio de SVN. Aquí les dejo una mini guía en tan sólo 6 pasos para una migración correcta de SVN a GIT.
Primero necesitaremos un programa de java, desarrollado por Atlassian, que nos ayudará con la migración lo puedes descargar en el siguiente link svn-migration-script
Nota: Está guía esta orientada a sistemas operativos basados en Unix (Linux o Mac OS).
Paso 1: Crear unidad de migración sensible a mayúsculas y minúsculas
java -jar ~/svn-migration-scripts.jar create-disk-image 1 <nombre_migración>
Ejemplo:
java -jar ~/svn-migration-scripts.jar create-disk-image 1 MigracionSVN
Paso 2: Ir a la unidad de migración creada
cd ~/<nombre-migración>
Ejemplo:
cd ~/MigracionSVN
Paso 3: Obtener lista de autores del Repo SVN
java -jar ~/svn-migration-scripts.jar authors <url> <usuario> <contraseña> > authors.txt
Ejemplo:
java -jar ~/svn-migration-scripts.jar authors http://servidor.svn.com/repo_svn/ eolate 123456 > authors.txt
Paso 4: Reemplazar autores correctamente en el archivo authors.txt
Ejemplo:
Línea archivo original | Línea archivo modificado |
eolate = eolate <rmarin@mycompany.com> | eolate = Esteban Olate <estebanolateb@gmail.com> |
Paso 5: Migrar repo
git svn clone –trunk=/ –authors-file=authors.txt <url> <git_repo_name>
Ejemplo:
git svn clone –trunk=/ –authors-file=authors.txt http://servidor.svn.com/repo_svn/ ProyectoGit
Nota: este ejemplo usa solo la opción –trunk porque no se tomaran en cuenta las branch ni los tags. Para especificar ruta de ramas usar “–branches=” y para los tags usar “–tags=”.
Paso 6: Subir repo a git
cd <git_repo_name>
git remote add origin <git_url = .git>
git push -u origin master
Ejemplo:
cd ProyectoGit
git remote add origin git@github.com:eolate/proyecto_git.git
git push -u origin master
Espero les sirva Esteban Olate