Feeds:
Entradas
Comentarios

Posts Tagged ‘Subversion’

Dado que la orden commit de SVN no añade -por sí misma- elementos nuevos al repositorio, necesitaremos ejecutar un add para cada uno de dichos elementos, como paso previo para hacer el commit.

Podemos automatizar todo ello con el siguiente script:

#!/bin/bash
svn status | grep “^\?” | awk ‘{print $2}’ | xargs svn add
svn commit

Tras darle permisos de ejecución, sólo tendremos que ejecutarlo sobre el directorio con la raíz del código.

Read Full Post »

En un par de ocasiones, he tenido que revertir un servidor SVN completo a una revisión concreta. La primera, hace ya mucho, cuando un compañero decidió -por error- convertir el repositorio en recursivo. La segunda, ayer, cuando yo mismo me equivoqué subiendo un proyecto incorrecto. Sé que se podía haberlo borrado pero, ¿para qué dejar mierda en las revisiones?

Al lío. Si queremos revertir el repositorio completo a una revisión dada, los pasos son los siguientes:

  1. Crear un repositorio temporal:
    • svnadmin create /ruta/svn.tmp
  2. Volcar todos los cambios hasta la revisión, de forma incremental:
    • svnadmin dump -r 1:revisión /ruta/svn –incremental > volcado.svn
  3. Cargar el volcado en el repositorio temporal:
    • svnadmin load  /ruta/svn.tmp < volcado.svn
  4. Borrar el repositorio viejo:
    • rm -r /ruta/svn
  5. Renombrar el repositorio temporal:
    • mv /ruta/svn.tmp /ruta/svn
  6. Reparar los permisos del repositorio, si es necesario:
    • chown -R usuario.grupo /ruta/svn

Fácil, rico, y para toda la familia.

Read Full Post »

Parece que, ahora sí, el frío comienza a asomar tímidamente su necesaria y reconfortante presencia por la orografía de nuestro querido manchurrón en el mapa. La llegada del navideño y consumista mes de diciembre, además de alegrar a los comerciantes, hace que un nuevo número de la revista @rroba llegue a los kioscos, en este caso el 147. Y, como siempre, encontraréis dos artículos con la firma de un servidor.

El primero es la nueva entrega del Curso de Java Útil, decimoctava del curso y quinta dedicada a nuestro software de cifrado jWadalPasswd. En esta ocasión, veremos cómo podemos guardar la información privada de un usuario del sistema, cifrada y residente en memoria volátil, a un fichero persistente. Para ello, generaremos un fichero de texto codificado en Base64, y con una determinada estructura. Por supuesto, el proceso análogo consistirá en la recuperación de la información almacenada en dicho fichero.

El segundo artículo, titulado Implantación de un servidor Subversion, supone la evolución de aquel publicado en el número 124 sobre la implantación de un servidor CVS. En esta ocasión, en lugar del vetusto CVS, acudiremos al más moderno SVN; y en lugar de utilizar como entorno un sistema Windows, acudiremos a un entorno libre GNU/Linux. Veremos, no sólo como instalar el propio servidor Subversion, sino también cómo permitir su acceso mediante HTTP, gracias al servidor Web Apache y a la tecnología WebDAV.

Y por último, debo anunciar, con gran tristeza y dolor de corazón (y de ojos hogos), que en la portada de este mes aparece la palabra “encriptar“. Nooooooooooooo

@rroba 147

@rroba 147

Read Full Post »

En anteriores ocasiones ya hablé de cómo instalar un servidor CVSNT en Windows XP y en Windows 2008 Server, así que ya iba siendo hora de hablar de su relevo generacional, en varios sentidos. En esta ocasión, vamos a ver cómo instalar un servidor Subversion (también llamado SVN) bajo Ubuntu GNU/Linux. Además, vamos a hacer que su acceso sea mucho más sencillo, al utilizar como protocolo de acceso el propio HTTP, gracias a WebDAV.

  1. Obviamente, lo primero será instalar un servidor Web, en este caso Apache2: sudo apt-get install apache2
  2. Lo siguiente es instalar el software de Subversion: sudo apt-get install subversion
  3. A continuación hay que instalar el módulo de SVN para Apache: sudo apt-get install libapache2-svn
  4. Ahora debemos meternos con el propio repositorio SVN…
    1. Lo primero será crear el propio repositorio: sudo svnadmin create /svn
    2. Cambiaremos el propietario del repositorio al del servidor Web: sudo chown -R www-data.www-data /svn
    3. También cambiaremos los permisos de los archivos, para evitar problemas: sudo chmod -R 770 /svn
  5. Editamos el fichero de configuración “/etc/apache2/mods-enabled/dav_svn.conf” para retocar unos detalles:
    1. Descomentar las líneas “#<Location /svn>” (línea 13) y “#</Location>” (línea 54).
    2. Descomentar la línea “#DAV svn” (línea 16).
    3. Descomentar la línea “#SVNPath /var/lib/svn” (línea 19) y configurarla para que contenga la ruta al repositorio que creamos anteriormente, en nuestro caso “SVNPath /svn”.
    4. Descomentar las líneas 40, 41 y 42, que contienen los parámetros “AuthType”, “AuthName” y “AuthUserFile”.
    5. Añadir, tras las líneas anteriores, una nueva con el texto “Require valid-user”.
  6. Ahora debemos añadir los usuarios.
    1. El primero lo haremos con la siguiente orden: sudo htpasswd -cm /etc/apache2/dav_svn.passwd usuario
    2. Para todos los demás, utilizaremos esta variación: sudo htpasswd -m /etc/apache2/dav_svn.passwd otro_usuario
  7. Por último, reiniciamos el servidor Apache: sudo /etc/init.d/apache2 restart

¡Listo! Ya podemos acceder a nuestro repositorio SVN mediante la URL “http://servidor/svn&#8221;, tanto desde un navegador Web, como desde cualquier IDE de desarrollo.

Read Full Post »

A %d blogueros les gusta esto: