Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

Servidor Subversion con autentificación en OpenWRT

votar
Archivado en Software con fecha 2/Sep/2009 - 0 comentarios

Siguiendo con la serie de entradas sobre OpenWRT el siguiente paso es instalar un servidor Subversion, complemento perfecto para desarrollo. En este caso será imprescindible contar con soporte de almacenamiento USB, ya que el tamaño de los repositorios crece rápidamente y el dispositivo no tiene capacidad suficiente.

Lo primero es instalar los paquetes necesarios:

opkg update
opkg install subversion-client subversion-server

Se instalará el servidor nativo svnserve de forma muy básica, donde la configuración se encuentra en /etc/config/subversion. El problema es que no tiene autentificación pudiendo acceder cualquiera a los repositorios. Para añadir un poco de seguridad, debemos crear un fichero de configuración (en /mnt/usb/svn/svn.conf, por ejemplo) que contenga lo siguiente:

[general]
realm		= openwrt
anon-access	= none
auth-access	= write

Esto forzará que svnserve solicite identificación, pero como no se ha indicado un archivo de usuarios/contraseñas y no será posible acceder a través del protocolo nativo. Lo que interesa es que se pueda acceder a través de svn+ssh, pero por defecto OpenWRT sólo crea el usuario root y no dispone de los comandos típicos de gestió de usuarios y grupos, por lo que es necesario añadir los nuevos usuarios a pelo, editando el archivo /etc/passwd copiado la primera línea y modificando el nombre de usuario, el UID/GID y la ruta de su home:

root:[contraseña]/:0:0:root:/root:/bin/ash
david:[contraseña]/:1013:1013:david:/home/david:/bin/ash

Recomendable usar un UID/GID mayor de 1000 y copiar la contraseña de root (que luego se puede cambiar con el comando passwd [usuario]) para poder probar el primer acceso. Del mismo modo, hay que editar el archivo /etc/groups:

root:x:0:
david:x:1013:

Una vez añadido el usuario, bastará reiniciar el router para tener el servidor Subversion 100% operativo a través de svn+ssh. Para probarlo, se puede crear un repositorio con svnadmin create /var/local/svn/test e intentar acceder a él con el comando svn info svn+ssh://[router]/var/local/svn/test.

Migración de repositorios SVN entre diferentes versiones

votar
Archivado en Programacion con fecha 29/May/2009 - 0 comentarios
Ver en Bitacoras.com - Etiquetado con: ,

Hoy he tenido que mibrar un repositorio Subversion que lleva meses con la versión 1.5 a otra máquina con la versión 1.6. La configuración y demás ha ido bien, pero al intentar acceder al repositorio, me he encontrado con el siguiente mensaje:

bdb: Program version 4.4 doesn't match environment version 4.6

Evidentemente se debe a las diferentes versiones de Berkeley DB que usan las dos máquinas, por lo que es necesario realizar la conversión de las bases de datos. Una opción es utilizar db4.X-utils, pero no siempre está disponible en los repositorios de las distribuciones (por no hablar de Windows), por lo que es mucho más fácil volcar el repositorio con los comandos de Subversion, e importarlo en la nueva máquina. El volcado se realiza con el siguiente comando:

svnadmin dump repositorio > backup.dump

Y en la nueva máquina, en vez de copiar el repositorio tal cual, se crea uno de cero y se realiza la importación:

svnadmin create --fs-type fsfs repositorio
svnadmin load repositorio < backup.dump

Con esto nos ahorramos pelearnos con conversión de versiones :)

Subversion por defecto permite enviar commits sin comentarios, pero es posible forzar un error en caso de no detectar comentarios. Basta este script en Python ubicado en el directorio hooks :)

10/Feb/2009 | 2 comentarios | En Bitacoras.com

Subversion Keywords

votar
Archivado en Programacion con fecha 4/Abr/2008 - 0 comentarios

Al trabajar con sistemas de control de versiones, resulta muy útil tener información acerca de la última revisión del archivo en forma de comentarios, especialmente en clases. Para eso, Subversion integra el sistema de keywords, que permite tener incluir en los archivos información relativa a los cambios realizados en el repositorio.

En el capítulo 3 del libro Contro de versiones con Subversion se detalla:

Subversion has the ability to substitute keywords—pieces of useful, dynamic information about a versioned file—into the contents of the file itself. Keywords generally provide in- formation about the last modification made to the file. Because this information changes each time the file changes, and more importantly, just after the file changes, it is a hassle for any process except the version control system to keep the data completely up-to-date. Left to human authors, the information would inevitably grow stale.

Existen varias palabras clave predefinidas: Date, Revision ( o Rev ), Author, HeadURL e Id. Se deben especificar entre $ y son sensibles a mayúsculas y minúsculas. Por ejemplo, para indicar la revisión se haría $Revision.

Una vez integradas las palabras clave en los comentarios, es necesario establecer la propiedad svn:keywords para el archivo o archivos deseados:

svn propset svn:keywords "Revision" clase.php

Hecho esto, sólo queda enviar los cambios al repositorio, y aunque explorándolo sólo se vea la palabra clave, tanto en la copia de trabajo como en cualquier copia que descarguemos aparecerá el valor: $Revision: 199 $.

XML-RPC en Trac 0.11 “Genshi”

votar
Archivado en Software con fecha 24/Mar/2008 - 0 comentarios

Comenté hace unos dias las mejoras de la última versión ( beta ) de Trac, y que ya estaba utilizándola. Todo funciona perfectamente excepto el componente XML-RPC, que permite la integración con Mylyn.

Como todavía no se ha publicado una versión del componente que sea compatible con la última beta del software ( en este ticket se puede ver la evolución ), debemos descargarnos la versión del componente para Trac 0.10 y el parche, y luego ejecutar:

unzip xmlrpcplugin.zip
cd xmlrpcplugin/0.10
patch -p1 < ../../xmlrpc-11.3-genshi.2.diff
sudo python setup.py install

Luego, habrá que activar como de costumbre el componente en la configuración:

[components]
tracrpc.* = enabled

En mi caso, tuve que reiniciar el servidor Apache debido al siguiente error:

ImportError: No module named posixpath

Hecho esto, podemos integrar de nuevo Mylyn con Trac :)

Trac 0.11 “Genshi”

votar
Archivado en Software con fecha 18/Mar/2008 - 2 comentarios

Hace unos dias comentaba que estaba probando la esperadísima versión 0.11 del estupendo gestor de tickets Trac.

Las mejoras en esta versión son muchas:

  • Nuevo sistema de plantillas
  • Nuevo y personalizable flujo de trabajo
  • Nuevo sistema de permisos
  • Integración del plugin WebAdmin
  • Visor de repositorios con Ajax

Para mí sigue siendo el mejor gestor de tickets disponible, pero echo en falta ciertas cosas:

  • Más facilidad para asignar y reasignar tickets a uno o varios usuarios
  • Un buen sistema de control de tiempo de resolución de tickets, ideal para generar diagramas de Gantt
  • XML-RPC para integración con proyectos como Eclipse Mylyn
  • Internacionalización sencilla, sin tener que parchear código

Algunas de estas funcionalidades pueden añadirse gracias al sistema de plugins ( lista de Edgewall y repositorio en Trac Hacks ), pero nada mejor que tenerlas de serie

Mejorando Eclipse para desarrollo web

votar
Archivado en Software con fecha 22/May/2006 - 3 comentarios

No le había prestado demasiada atención a Eclipse hasta la salida de PHP IDE ( había probado los plugins PHPEclipse y Xored Trustudio con bastante decepción ), pero ahora empieza a ser rival digno para el gran Zend Studio.

El problema es que de serie no trae todo lo deseable. El paquete Web Tools Platform trae editor HTML, Javascript, CSS, JSP y SQL, editor avanzado de XML y una interesante herramienta para consultas a bases de datos ( al estilo Zend Studio ). Pero a mi me faltaban algunas cosillas:

  • Soporte para Subversion: Subclipse
  • Soporte para SFTP: Sftp File Synchronization
  • Editor de JavaScript avanzado: JSEclipse. Éste es especialmente interesante porque tiene por fin un sistema decente de escritura predictiva y ayudas incluso con soporte para Prototype.
  • Accesos y consultas a bases de datos: QuantumDB

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons