Tras mi primera migración de SVN, que acabó satisfactoriamente, decidí realizarme un pequeño manual donde recoger todos los pasos para una próxima migración que tendré que realizar dentro de poco.

En esta migración realicé bastantes cambios, por lo que considero que la guía está bastante completa:

  • Cambio de versión de Apache de 2.0 a 2.2
  • Cambio de versión de SVN de 1.4.5 a 1.6.6 (Esta migración se debió a que tenía problemas a realizar un merge)
  • Modificación de las urls de los repositorios

Empecemos con la migración.

Pasos sacados de la web de Subversion

Esta guía se ha realizado siguiendo como base los pasos descritos en la web oficial de subversión. A estas indicaciones resaltar que algunos pasos no me ha hecho falta realizarlos por mi situación concreta. Pero por otro lado, si he añadido algún que otro paso que me ha sido necesario para completar mi migración.

Guía oficial: http://subversion.tigris.org/faq.html

  1. Shut down svnserve, Apache, and anything else that might be accessing the repository.
  2. svnadmin dump /path/to/repository > dumpfile.txt , using version X of svnadmin.
  3. mv /path/to/repository /path/to/saved-old-repository
  4. Now upgrade to Subversion Y (i.e., build and install Y, replacing X).
  5. svnadmin create /path/to/repository, using version Y of svnadmin.
  6. svnadmin load /path/to/repository < dumpfile.txt , again using version Y of svnadmin.
  7. Copy over hook scripts, etc, from the old repository to the new one.
  8. Restart svnserve, Apache, etc.

Descripción Paso 2

Fichero BATCH para crear Backup de cada uno de los repositorios

rem
rem Para realizar backup de los repositorios es necesario que el servicio de apache esté parado.
rem

echo Iniciando backup de los repositorios de SVN...
echo -----------------------------------------------

cd 

rem echo Generando Dump File del repositorio repos_uno...
rem svnadmin dump c:Subidas_produccionRepositoriorepos_uno > dumpFile_repos_uno.txt
rem echo Dump File del repositorio repos_uno generado correctamente.

echo -----------------------------------------------
echo Backup de todos los repositorios completado.

Pause

Descripción Paso 4

Crear backup de los ficheros de autenticación de usuarios (svn-auth-file).

Crear backup del fichero de instalación de SVN v1.4.5.

Desinstalar la versión actual de SVN (v1.4.5) e instalar la nueva versión (v1.6.6).

Los pasos a seguir para una instalación nueva vienen recogidos en este documento “Instalación de Subversion“.

Hacer backup de los ficheros de configuración de Apache (httpd.conf)

Desinstalar Apache http Server 2.0.63 e instalar la nueva versión 2.2.14

En mi caso, tuve que reiniciar la máquina porque era incapaz de arrancar Apache.

Aunque había modificado el fichero https.conf con la nueva ruta Subversión, seguía detectando la anterior. Hasta que no reinicié, y volví a editar el fichero de configuración, no me di cuenta de que estaba modificando un fichero que no era.

%name Migración de SVN

Descripción Paso 5

Crear los repositorios en la nueva ubicación del sistema de ficheros.

Consultar documento de instalación para ver cómo crear los repositorios.

Descripción Paso 6

Realizar import de los dumpfiles de cada uno de los repositorios.

Fichero BATH de importación:

echo Realizando import de los repositorios SVN...
echo ----------------------------------------------

svnadmin load c:RepositoriosSVNrepos_uno < C:Subidas_producciondumpFile_repos_uno.txt

echo ----------------------------------------------
echo Imports realizados correctamente.

pause

Descripción Paso 6a – Actualizar ruta de los módulos de SVN dentro de la configuración de Apache

Actualizar la configuración de Apache 2.2 del fichero httpd.conf. Si ya se tenía instalado Apache, hay que revisar la configuración de 2 módulos:

Ruta módulos anterior:

LoadModule dav_svn_module “C:/Subversion/bin/mod_dav_svn.so”

LoadModule authz_svn_module “C:/Subversion/bin/mod_authz_svn.so”

Ruta módulos nueva:

LoadModule dav_svn_module “C:/Archivos de programa/Subversion1.6/bin/mod_dav_svn.so”

LoadModule authz_svn_module “C:/Archivos de programa/Subversion1.6/bin/mod_authz_svn.so”

Descripción Paso 6b – Actualizar la ruta de las entradas Location de Apache con las nuevas rutas de los repositorios y nueva ruta del fichero de autenticación de usuarios de SVN.

Si los repositorios han sido movidos de ubicación dentro del sistema de ficheros, deberemos modificar las entradas location del fichero httpd.conf de Apache.

Ejemplo de location anterior:

Hay que modificar lo señalado en naranja:

<Location /Subidas_produccion/Repositorio/repos_uno>
  DAV svn
  SVNPath C:/Subidas_produccion/Repositorio/repos_uno
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile C:etcusuarios-svn.txt
  Require valid-user
# AuthzSVNAccessFile c:/etc/svn-acl
</Location>

Ejemplo del nuevo location:

<Location /RepositoriosSVN/repos_uno>
  DAV svn
  SVNPath C:/RepositoriosSVN/repos_uno
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile C:RepositoriosSVNusuariosSVNusuarios-svn.txt
  Require valid-user
# AuthzSVNAccessFile c:/etc/svn-acl
</Location>

Paso Alternativo si es necesario

Si la url del repositorio cambia, luego en cada copia de trabajo hay que ejecutar:

$ svn switch –relocate url_antigua url_nueva

En mi caso, habría que realizar estas modificaciones aunque a mi no hizo falta con los pasos que hemos seguido pero lo dejo por si en un caso concreto fuera ncesario:

Ruta anterior:      C:Subidas_produccionRepositorio…

Ruta nueva:          C:RepositoriosSVN…

URL anterior:      http://localhost/Subidas_produccion/Repositorio/…

URL Nuevo:         http://localhost/RepositoriosSVN/…

Verificación de que todo funciona desde eclipse.

Crear las nuevas entradas de las urls de nuestros proyectos en Eclipse en la vista SVN repositories.

Desde aquí ya se puede comprobar si los ficheros mantienen el histórico de todos los commit y operaciones que se hayan realizado pulsando el botón derecho del ratón sobre éste y seleccionando Show History.

Hacer checkout de los proyectos desde las nuevas urls del SVN.

Y eso es todo.

Que tengan mucha suerte con sus migraciones 😉

Dime qué te ha parecido el artículo...

rating off Migración de SVNrating off Migración de SVNrating off Migración de SVNrating off Migración de SVNrating off Migración de SVN (Ninguna valoración todavía)
loading Migración de SVNCargando…
Advertisements

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies

Veo que te gusta mi Blog...

Si te ha parecido interesante este artículo, no esperes a suscribirte a mi blog. Cuando vuelva a escribir otro seguro que te interesará y no desearás no haberte enterado. Puedes suscribirte con total tranquilidad de que no recibirás spam. Lo odio igual que tu. Solo quiero que aprendas cosas nuevas y te sientas agusto con mis artículos. ¡Gracias!

¡Gracias por suscribirte!

Pin It on Pinterest

Share This

Compártelo

¡Comparte este artículo con tus amigos!