Estas en: Home > SVN

Entradas etiquetadas con SVN

Cómo copiar y restaurar un repositorio Subversion en Linux

0

Subversion es un software de control de versiones que precedió a Git, y que en su momento disponía del monopolio de este tipo de software.

Debido a que aun quedan algunos repositorios en Subversion (el mismo WordPress aun lo usa), es posible que puedas verte en la situación de disponer de código legado que aun use este CVS.

Si has llegado hasta aquí, bien porque el repositorio de Subversion te ha dado un error y quieres restaurar un backup de tu repositorio, o bien porque estás moviendo el repositorio a una nueva máquina, o simplemente porque quieres asegurarte de no perder los datos, te voy a indicar cómo realizar una copia o backup de tu repositorio de Subversion y restaurarlo donde lo necesites.

Realizar una copia de respaldo (backup) de un repositorio Subversion usando «svnadmin dump»

El comando «svnadmin dump» es el que realizará el trabajo por nosotros. creará un fichero de los datos del repositorio.

svnadmin dump [ruta_del_repositorio] > [nombre_del_fichero_de_respaldo]

Por ejemplo, para realizar un backup del repositorio localizado en la ruta /var/repos/mi_repo habría que ejecutar el siguiente comando:

svnadmin dump /var/repos/mi_repo > backup_mi_repo.dump

Restaurar una copia de respaldo (backup) desde un fichero usando «svnadmin load»

El funcionamiento del comando «svnadmin load» es igual de simple:

svnadmin load [ruta_del_repositorio] < [nombre_del_fichero_de_respaldo]

Por ejemplo, si quisieramos restaurar la copia del repositorio en el fichero anterior al nuevo repositorio que se encuentra en /var/repos/mi_nuevo_repo:

svnadmin load /var/repos/mi_nuevo_repo < backup_mi_repo.dump

Este ejemplo considera que el directorio en el que se restaura la copia es un repositorio nuevo, creado con el comando:

svnadmin create /var/repos/mi_nuevo_repo

Realizar una copia de respaldo (backup) incremental usando «svnadmin dump»

Si realizas backups frecuentes es posible que solo te interesen los cambios realizados desde la última vez que realizaste el backup, para ello la mejor forma es usar el parámetro «–incremental» y especificar la revisión desde la que comenzar (y terminar) usando «-r»:

svnadmin dump [ruta_del_repositorio] --incremental -r [revision_inicio]:[revision_final] > [nombre_del_fichero_de_respaldo]

El parámetro «-r» puede tener como valor solo la revisión de inicio, o bien usar «HEAD» para la revisión final:

svnadmin dump /var/repos/mi_repo --incremental -r 10:HEAD > backup_mi_repo_incremental.dump

Restaurando una copia de respaldo (backup) usando «svnadmin load»

No es diferente a la restauración de la copia de respaldo normal:

svnadmin load /var/repos/mi_nuevo_repo < backup_mi_repo_incremental.dump

Comprimir el fichero de la copia de respaldo

Esto se puede hacer fácilmente con «gzip»:

gzip backup_mi_repo.dump

Este comando generará un fichero con extensión «.gz» y un tamaño mucho más reducido respecto al fichero original, que fácilmente pueden ser cientos de gigabytes.

Para descomprimir el fichero hay que utilizar «gunzip»:

gunzip backup_mi_repo.dump.gz

Subversion y Apache, corregir el error 413 Request Entity Too Large

0

Algunas veces, cuando realizamos commits con muchos archivos, Subversion no es capaz de procesar el commit y nos devuelve el error «413 Request Entity Too Large». Este error se produce porque el commit que estás realizando tiene un tamaño superior al que tiene configurado Subversion al hacer la petición.

Para corregirlo hay que añadir los siguientes parámetros al virtual host del servidor de Subversion:

[codesyntax lang=»apache»]

LimitXMLRequestBody 0
LimitRequestBody 0

[/codesyntax]

Con estos dos parámetros eliminarás el límite impuesto por Subversion.

Si lo deseas, en vez de eliminar el límite puedes aumentarlo a 64MB,256MB, etc.

 

Integración continua: Automatizando la creación de repositorios con Git y Subversion

0

La automatización de procesos es una de las tareas esenciales en integración continua, ya que permite estandarizar los procesos (que siempre sean iguales) y ahorrar muchísimo tiempo en el desarrollo de los proyectos.

Lo primero que vamos a automatizar es la creación de repositorios. Para ello vamos a utilizar un script en Bash para poder ejecutarlo en consola a través de ssh. Es posible crear algo parecido con otros lenguajes de programación y además, con una interfaz web que facilite la gestión; pero de momento vamos con lo más básico.

(más…)

Integración continua: Instalación de Subversion y Git

0

Hoy vamos con algo que supongo ya conoceréis, pero que para esta guía es imprescindible: Los repositorios.

Los repositorios, dicho de una forma sencilla: es un lugar donde guardar y mantener un histórico de los cambios que se realizan en el software o proyecto en el que estás trabajando. De momento solo me centraré en su instalación y en una pequeña configuración que será necesaria para lo que aun queda de esta guía.

 

Instalación de Subversion

Instalar los paquetes necesarios

apt-get install subversion libapache2-svn subversion-tools

Los repositorios los guardaremos en el siguiente directorio:

/var/repos

Se utilizará la url svn.ic.net para obtener los repositorios. Para ello hay que añadir un virtualhost con la siguiente información (etc/apache2/sites-enabled):

ServerName svn.ic.net
DocumentRoot /var/www/svn.ic.net

<Directory />
     Options FollowSymLinks
     AllowOverride None
</Directory>
<Directory /var/repos>
     Options Indexes FollowSymLinks MutiViews
     AllowOverride None
     Order allow,deny
     allow from all
</Directory>

Añadir el dominio al archivo /etc/hosts, si no el sistema devolverá un 200 OK pero no se podrá trabajar con el repositorio.

Todos los repositorios se deberán añadir a este archivo utilizando los tags <Location></Location>, ejemplo:

<Location "/mediawiki">
        DAV svn
        SVNPath /var/repos/mediawiki
</Location>

También se pueden añadir los repositorios en archivos separados en /etc/apache2/repos e incluirlos dentro del virtualhost de svn.ic.net, añadiendo la siguiente línea:

Include /etc/apache2/repos

 

Instalación de Git

Para instalar Git ejecuta el siguiente comando:

apt-get install git

El virtualhost que usaremos será el mismo que el de Subversion, con lo que no tenemos que hacer nada más con git.

Subversion: */props/tempfile.tmp. No se puede hallar la ruta especificada

1

A veces las cosas fallan, sin más. Como en este caso, por alguna extraña razón Subversión no podía hallar la ruta especificada. Reviso la ruta y la carpeta no existe. Solución sencilla:

Creas la carpeta props y dentro de ella con el bloc de notas (si hablo de Windows, si estas en otro SO y te da este error (que lo dudo, sobre todo si es GNU/Linux) te dejo que elijas editor de texto xD) creas el archivo tempfile.tmp en blanco sin que tenga ni siquiera un espacio en blanco, le das a «Guardar como…» y en el deplegable elije «Todos los archivos» de esa forma podrás escribir la extensión del archivo y que no te lo guarde como txt.

Solo tienes que volver a realizar el commit y listo.

Ir arriba