[TFS2010] HowTo: Exportar el contenido completo de un repositorio de SubVersion a otro repositorio de Subversion

image47dd1de4

Buenas,

en este post no pienso hablar nada de Team Foundation Server 2010 o de Visual Studio 2010, pero me servirá como referencia para próximos posts sobre la utilización TFS Integration Platform. Asi que a lo que vamos …

El escenario que intento abarcar en este post se refiere a la necesidad de exportar el contenido completo de un repositorio de SubVersion a otro repositorio, incluyendo revisiones, histórico, etc. Para este ejemplo, trabajaré con uno de los clientes más populares de SubVersion: TortoiseSvn. Los siguientes pasos describen como realizar la exportación / sincronización.

Tutorial

1. Suponiendo que tenemos un repositorio de SubVersion creado en el directorio [C:\Demo\OldRepo], crearemos un nuevo repositorio en el directorio [C:\Demo\NewRepo]

2. Para esto, en Windows Explorer seleccionamos el directorio, desplegamos el menú contextual y seleccionamos la opción [TortoiseSVN // Create repository here]

image

Una vez creado podremos ver que dentro del mismo, se crea una estructura de carpetas propia de un repositorio de SubVersion.

 

3. Si queremos validar el contenido vación del repositorio, desplegamos nuevamente el menú contextual desde Windows Explorer y seleccionamos la opción [TortoiseSVN // Repo-browser]. En la url ponemos el acceso al repositorio recién creado, y veremos como el mismo está vacío.

image

 

4. Ahora comenzamos la sincronización utilizando el comando svnsync. Para realizar una sincronización, necesitamos ejecutar 2 pasos con este comando:

   1: CD "C:\Program Files\Subversion\bin"

   2: svnsync initialize "file:///C:/Demo/NewRepo" "file:///C:/Demo/OldRepo" 

   3: svnsync sync file:///C:/Demo/NewRepo

Pero sin embargo cuando realizamos esta acción, nos encontramos con el siguiente mensaje de error:

   1: Microsoft Windows [Version 6.0.6002]

   2: Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

   3:  

   4: C:\Users\Administrator>;CD "C:\Program Files\Subversion\bin"

   5:  

   6: C:\Program Files\Subversion\bin>;svnsync initialize "file:///C:/Demo/NewRepo" "fi

   7: le:///C:/Demo/OldRepo"

   8: svnsync: Repository has not been enabled to accept revision propchanges;

   9: ask the administrator to create a pre-revprop-change hook

  10:  

  11: C:\Program Files\Subversion\bin>

Esta información nos indica que debemos crear un hook para admitir los cambios en las revisiones en el repositorio.

 

5. Si vemos el contenido del directorio [C:\Demo\NewRepo\hooks] veremos que en el mismo existe el archivo pero con extension .tmpl. Esta extensión es un template que se utilza mayormente en UNIX. Para nuestro caso crearemos un nuevo archivo con el mismo nombre pero con extensión .bat y dentro delmismo agregaremos la siguiente línea:

   1: @exit 0

Por ejemplo:

image

 

6. Ahora si, ya podremos iniciar la sincronización. Cuando ejecutamos el primer comando veremos el siguiente mensaje:

   1: C:\Program Files\Subversion\bin>;svnsync initialize "file:///C:/Demo/NewRepo" "fi

   2: le:///C:/Demo/OldRepo"

   3: Copied properties for revision 0.

7. Cuando ejecutamos la sincronización, veremos como se mueven las revisiones al repositorio de destino:

   1: C:\Program Files\Subversion\bin>;svnsync sync "file:///C:/Demo/NewRepo"

   2: Transmitting file data ...........

   3: Committed revision 1.

   4: Copied properties for revision 1.

   5: Transmitting file data .

   6: Committed revision 2.

   7: Copied properties for revision 2.

   8: Transmitting file data .

   9: Committed revision 3.

  10: Copied properties for revision 3.

  11: Transmitting file data .

  12: Committed revision 4.

  13: Copied properties for revision 4.

  14: Transmitting file data ......

  15: Committed revision 5.

  16: Copied properties for revision 5.

  17: Transmitting file data ...

  18: Committed revision 6.

  19: Copied properties for revision 6.

  20: Transmitting file data ...

  21: Committed revision 7.

  22: Copied properties for revision 7.

  23: Transmitting file data ...

  24: Committed revision 8.

  25: Copied properties for revision 8.

  26:  

  27: C:\Program Files\Subversion\bin>

Este proceso puede tardar bastante de acuerdo a la cantidad de revisiones y tamaño de las mismas.

8. Una vez finalizado el proceso, si refrescamos el Repo-browser, podremos ver como se han sincronizado los contenidos al nuevo repositorio

image

 

Pues por ahora esto es todo. En próximos posts … porque esto es importante para TFS Integration Platform.

 

 

Saludos @ Home

El Bruno

   

One thought on “[TFS2010] HowTo: Exportar el contenido completo de un repositorio de SubVersion a otro repositorio de Subversion

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.