Instalación de Subversion (SVN) en Windows XP
Introducción
Subversion es un sistema de control de
versiones, al igual que el archiconocido CVS, pero que lo mejora en ciertos
puntos.
Las diferencias, a grandes rasgos, son que
Subversion (al que pasaré a llamar SVN) puede encontrar las diferencias en
archivos binarios, cosa que no puede hacer CVS. Otra bastante importante, es que
se puede realizar un diff (mostrar las diferencias entre 2 archivos) sin tener
que estar conectado al repositorio (SVN guarda una copia local de la última
versión del repositorio sin los cambios que haga uno); y por último, SVN guarda
el historial de la meta información de archivos y carpetas, es decir, en CVS si
se cambiaba de nombre una carpeta, un archivo, se borraba alguno de éstos,
simplemente desaparecía. SVN guarda toda esta meta información en el historial.
Yo
trabajo en Autentia, y este sistema
nos viene muy bien para poder realizar desarrollos de manera ordenada y
efectiva, aumentando el rendimiento y la calidad de los mismos.
Instalación para Windows
Pasaremos ahora a realizar la instalación de
SVN en Windows.
Primero, descargamos SVN para Windows de
aquí
Una vez descargado, comenzamos la instalación.
Pinchamos sobre el ejecutable que acabamos de descargar para comenzar la
instalación:
En este punto ya tenemos instalado SVN. El instalador crea una entrada
automáticamente en el path del sistema con la ruta de los ejecutable de SVN.
Vamos a crear ahora un repositorio (en caso de que quieras portar un
repositorio CVS a SVN tienes mucha información
aqui).
Abrimos pues una ventana de símbolo de sistema, nos situamos en el directorio en
el cual queremos crear el repositorio (para el ejemplo d:\servidores\svnRepo) y
ejecutamos el siguiente comando:
>> svnadmin create web
Web es el nombre que le quiero dar a mi repositorio, puesto que en él
guardaré mis proyectos Web. Puedes crear tantos repositorios como quieras, o
guardar todos tus proyectos en el mismo repositorio.
Ya tenemos creado el repositorio. debería tener una estructura similar a
ésta (puedes verlo tecleando >> dir /B /S web):
\web\conf
\web\dav
\web\db
\web\format
\web\hooks
\web\locks
\web\README.txt
\web\conf\authz
\web\conf\passwd
\web\conf\svnserve.conf
\web\db\current
\web\db\format
\web\db\fs-type
\web\db\revprops
\web\db\revs
\web\db\transactions
\web\db\uuid
\web\db\write-lock
\web\db\revprops
\web\db\revs
\web\hooks\post-commit.tmpl
\web\hooks\post-lock.tmpl
\web\hooks\post-revprop-change.tmpl
\web\hooks\post-unlock.tmpl
\web\hooks\pre-commit.tmpl
\web\hooks\pre-lock.tmpl
\web\hooks\pre-revprop-change.tmpl
\web\hooks\pre-unlock.tmpl
\web\hooks\start-commit.tmpl
\web\locks\db-logs.lock
\web\locks\db.lock
SVN viene con un servidor, svnserve (al igual que CVS). Este servidor escucha
el puerto 3690, y utiliza un protocolo propio que se designa parecido a CVS:
svn:// o svn+ssh://.
Svnserve se puede instalar como servicio para Windows XP con
este programa.
Sin embargo, usaremos otro método para acceder a SVN: mediante Apache. Como
sabrás, Apache en un servidor Web. ¿Qué tiene de bueno acceder a SVN mediante
Apache? Principalmente dos cosas. Una, es que los accesos al servidor se
realizan por el puerto 80, con lo que posiblemente no tengas que abrir ningún
puerto. Además se pueden ver vía explorador Web los proyectos y su contenido
(aunque esto se puede limitar como veremos más adelante). El segundo punto
importante es que el plugin de SVN para Eclipse utiliza el acceso mediante
Apache (más tarde veremos cómo se instala y configura).
En este
tutorial tienes una referencia de cómo instalar Apache si es que no lo
tienes instalado.
Si ya tenías instalado Apache, te habrá hecho unas pequeñas modificaciones en
el archivo httpd.conf. Si lo acabas de instalar no te preocupes, ya que pasaremos a
explicar dónde hacer los cambios y qué significan.
Abre el archivo httpd.conf (situado en <ruta_a_apache>/Apache2/conf/) y busca
la sección de LoadModules. Busca si tienes los siguientes LoadModules (si
no los tuvieras añádelos en esa sección):
LoadModule dav_svn_module «D:/servidores/Subversion/bin/mod_dav_svn.so»
LoadModule authz_svn_module «D:/servidores/Subversion/bin/mod_authz_svn.so»
LoadModule dav_svn_module «D:/servidores/Subversion/bin/mod_dav_svn.so»
LoadModule authz_svn_module «D:/servidores/Subversion/bin/mod_authz_svn.so»
Ten en cuenta que D:/servidores/.. es la ruta donde yo he instalado
Subversion. Debes sustituir la ruta por la de tu sistema (y ¡¡cuidado!!, con la
barra ‘/’).
Estos módulos que se cargarán en Apache son los que realizan el acceso a
SVN.
Ahora tenemos que decirle a Apache dónde está la carpeta con el repositorio.
Busca la sección donde estan los ‘Location’ (posiblemente estén comentados en tu
archivo. Para encontrarlos rápidamente, dale a buscar y pon como texto a buscar Location).
Ahora añade una nueva localización escribiendo el siguiente texto:
<Location /svnRespository/web>
DAV svn
SVNPath D:/servidores/svnRepo/web
# Autenticación básica.
AuthType Basic
AuthName “Repositorio Subversion”
AuthUserFile D:/servidores/Apache2/bin/usuarios.txt
# Solo permitimos usuarios identificados en el fichero de passwords.
# require valid-user
# Solo permitimos usuarios identificados en el fichero de passwords
# con nombre ‘XXXXXXX’ o ‘YYYYYYY’.
# require user XXXXXXX YYYYYYY
# se permite lectura a todos, pero otras operaciones necesitan autenticación.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
En la primera línea: <Location /svnRespository/web>
se establece la ruta desde la cual en el explorador se puede acceder al
repositorio. En nuestro caso hemos puesto ésta (/svnRespository/web)
y accederíamos desde el explorador como
http://localhost/svnRepository/web.
Puedes poner la ruta que te parezca mejor.
La tercera línea, SVNPath D:/servidores/svnRepo/web
indica la ruta física al directorio del repositorio en nuestro sistema, que
hemos creado antes en esta ruta (pon aquí otra ruta si no lo instalaste aquí.).
La siguiente sección marca parte de la seguridad de acceso al repositorio:
# Autenticación básica. AuthType Basic AuthName «Repositorio Subversion» AuthUserFile D:/servidores/usuarios.txt
Y la línea más interesante es la última de este trozo de
código. En ella se indica el archivo de usuarios / claves que pueden tener más
derechos en el repositorio. Para crear este archivo es fácil. Desde una ventana
de símbolo de sistema accedemos a la ruta donde se encuentran los ejecutables de
Apache (…\apache2\bin) y tecleamos lo siguiente:
htpasswd -bc d:\servidores\usuarios.txt usuario claveUsuario
Mediante este comando se crea un fichero con nombres de
usuario y claves codificadas con MD5 (un algoritmo de hash). Como es lógico,
cambia ‘usuario’ por el nombre de usuario que quieras, y ‘clave’ por la clave
que desees que tenga.
Para añadir más usuarios que puedan acceder al
repositorio, debes ejecutar:
htpasswd -b d:\servidores\usuarios.txt usuario2 claveUsuario2
Observa que al añadir un usuario no le ponemos la bandera
‘c’, para que anexe el nuevo usuario al archivo que creó en la primera
ejecución. De todas formas lo mejor es que investigues como se utiliza este
comando para que veas las posibilidades que ofrece.
Ya está todo listo para que funcionen SVN y Apache.
Reinicia el servidor Apache para que los cambios en el httpd.conf se hagan
efectivos y comprueba el correcto funcionamiento. Para ello abre una ventana de
explorador de Internet y teclea
http://localhost/svnRepository/web. Te tendrá que salir algo similar a
esto:
Como verás, dado que aún no hemos añadido ningún proyecto al repositorio, no
saldrá ninguno. Ten cuidado si no quieres que algún proyecto sea visible por Web,
ya que
habrá que quitar o comentar la sección:
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
** Nota importante:
es probable que no te funcione Apache dado que suele haber problemas con las
dependencias del módulo mod_dav_svn.so. Cómo solucionarlo puede depender de tu
pericia con Windows, puedes buscar información en Google, que hay mucha, y sobre
todo, deberías usar el programa depencyWalker (www.dependencywalker.com)
y abrir el fichero comentado anteriormente (mod_dav_svn.so) que se encuentra en
la carpeta bin del directorio donde instalaste Subversion, y el programa te
mostrará qué dependencias le faltan, o qué no encuentra. Alguno de estos
ficheros son dll del Apache. Lo que hice yo fue copiarlos a
c:\windows\system32 y parece que
funcionó. Pero ya te digo, investiga…
Instalación y configuración de Eclipse para Subversion
Primero debemos instalar el plugin para Eclipse de Subversion (que como
luego podrás comprobar, es casi igual al módulo que viene en Eclipse para CVS).
Nos vamos a
http://subclipse.tigris.org/servlets/ProjectDocumentList y descargamos el
plugin para tu versión de Eclipse (la mía es 3.x, pues tengo Eclipse 3.1.1).
En el momento de creación de este documento, me descargué la versión
site-0.9.104.zip. Abrimos el Eclipse y en Help->software updates->Find and
install…->search for new features to install, le das al boton New archived
site. Seleccionas el zip que te acabas de bajar y aceptas. Ya deberías tener
instalado el plugin y las referencias al sitio para futuras actualizaciones.
Ahora vamos a agregar nuestro sitio y a publicar un proyecto para poder
trabajar en él:
en Windows->open perspective->other… y seleccionamos la perspectiva ‘svn
repository exploring’:
Tendremos abierta la perspectiva deseada. Dentro de la pestaña SVN Repository, botón derecho del raton y elegimos ‘new
repository location’. En las sigueintes capturas verás las ventanas y lo que hay
que poner en ellas. Sólo decir (aunque ya lo sabrás) que para el tutorial
utilizo localhost como servidor de SVN, pero para acceder a otro servidor sólo
tienes que cambiar localhost por la dirección del servidor de SVN.
Ya tenemos en la vista el repositorio añadido:
Sólo queda volver a la vista de java, o en la que estés trabajando, y el proyecto que quieras, publicarlo en
SVN. Esto se hace de la siguiente manera:
en el proyecto que quieras, botón derecho del ratón y click sobre team->share
project:
Y nos saldrá la siguiente ventana, para elegir el tipo de protocolo a
utilizar (que será SVN [subversion]):
Le damos a siguiente:
Aquí elegiremos el repositorio donde queremos compartir el proyecto.
Para ejemplo, elegimos el que hemos creado y pulsamos en siguiente:
Y finalmente pulsamos en Finish. Llegaremos a una ventana que nos
preguntará qué archivos del proyecto queremos subir al repositorio:
Desde aqui seleccionamos los archivos que queremos subir al repositorio,
y podemos añadir un comentario.
Y ya está. Ya tenemos nuestro proyecto compartido en Subversion de modo
que varias personas pueden trabajar en él, y el programa irá haciendo
las ‘mezclas’ de los códigos y versionando los ficheros…
Quien soy
Germán Jiménez Centeno, Ingeniero en Informática (gjimenez@autentia.com)
Consultor tecnológico en Autentia.
Autentia Real Business Solutions S.L. (www.autentia.com)
|
Muchísimas gracias por sus manuales. Han sido grandísima ayuda.
Bueno dias Amigos. Primero que todo muchas gracias por su labor al realizar estos tutoriales ha sido de mucha ayuda.
Queri agregar algo a tu tutorial
Para que el apache funcione con las librerias .dll del SVN solo basta con Copiar los archivos libdb44.dll y intl3_svn.dll que se encuentran en la carpeta %INSTALACION_SVN%\\\\bin dentro del directorio %INSTALACION_APACHE%\\\\bin.
Muchas Gracias
The instructions to find Subversion are out of date. The Windows installers on Tigris are stale. Newer ones are available at
http://www.open.collab.net/downloads/subversion/