Cómo instalar subversion en windows

July 28th, 2007

Para los interesados en instalar y configurar subversion como servidor a través de Apache Web Server sobre una plataforma Microsoft Windows, quizás las siguientes instrucciones ayuden. La instalación se ha realizado sobre Microsoft Windows Vista, con Apache Web Server 2.2.4 y subversion 1.4.4. En un post anterior os comentaba que había configurado un entorno de desarrollo para PHP con opciones de profiling. Pues bien, aprovechando que ya tenía instalado WAMP 1.7.1, he usado el Apache Web Server (2.2.4) que contiene este paquete para montar subversion. Suponiendo que ya se dispone de un Apache Web Server 2.2.x:

  1. Descargar subversion 1.4.4 y descomprimirlo
  2. Copiar los archivos mod_authz_svn.so y mod_dav_svn.so , que se encuentra en svn-win32-1.4.4/bin, en APACHE_INSTALL_DIR/modules
  3. Copiar los archivos intl3_svn.dll y libdb44.dll, que se encuentra en svn-win32-1.4.4/bin, en APACHE_INSTALL_DIR/bin
  4. Añadir las siguientes líneas (en la sección donde está la carga de librerías) al archivo APACHE_INSTALL_DIR/conf/httpd.conf para cargar las correspondientes librerias:
    1. LoadModule dav_svn_module modules/mod_dav_svn.so
    2. LoadModule authz_svn_module modules/mod_authz_svn.so
    3. LoadModule dav_module modules/mod_dav.so (es probable que exista, simplemente hay que asegurarse de que no esté comentada)
    4. LoadModule dav_fs_module modules/mod_dav_fs.so (es probable que exista, simplemente hay que asegurarse de que no esté comentada)
  5. Añadir la siguiente línea (al final) al archivo APACHE_INSTALL_DIR/conf/httpd.conf para cargar la configuración de subversion:
    1. Include “APACHE_INSTALL_DIR/conf/extra/httpd-subversion.conf”
  6. Creamos el archivo APACHE_INSTALL_DIR/conf/extra/httpd-subversion.conf con la siguiente configuración (es sólo un ejemplo):
    1. <Location /repos>
      DAV svn
      SVNParentPath “C:/tools/wamp/tmp/svn”
      AuthzSVNAccessFile “C:/tools/wamp/Apache2/conf/access-policy/svn-groups.conf”
      AuthType Basic
      AuthName “Subversion repository”
      Require valid-user
      AuthUserFile “C:/tools/wamp/Apache2/conf/access-policy/svn-users.conf”
      </Location>
    2. Cuidado con las rutas! eso es sólo un ejemplo. Básicamente se indica donde van a estar nuestros repositorios de subversion, el archivo con los grupos y usuario de subversion
  7. Ahora tenemos que crear los archivos svn-groups.conf y svn-users.conf. Para el primero de ellos tenemos:
    1. [groups]
      test-group: recena

      [test:/]
      @test-group:rw

    2. Definición de grupos y a continuación, nombre del repositorio (que tendremos que crearlo) y permisos del grupo sobre el raiz del repositorio.
  8. Para crear un usuario, hacemos uso de la utilidad htpasswd que nos proporciona Apache.
  9. Para crear el repositorio hacemos uso de la utilidad svnadmin que proporciona subversion

Para cualquier duda o sugerencia, un comentario.

Categories: Herramientas Tags:
  1. Anonymous
    July 29th, 2007 at 10:17 | #1

    Muchas gracias. Muy clarita la explicación ;)

  2. August 13th, 2007 at 17:00 | #2

    Muy buen tutorial un millón de gracias, pero me queda una duda y es respecto al archivo *svn-users.con*, ¿cual debe ser la estructura de este archivo?.

    Gracias de antemano,
    Sl2

  3. August 13th, 2007 at 21:34 | #3

    Hola:

    Si lo estás instalando en windows, debes hacer uso de la utilidad htpasswd.exe:

    htpasswd.exe svn-users.conf miusuario

    Si necesitas algo más, no dudes en escribir.

    Un saludo

  4. ricardo
    September 1st, 2007 at 04:09 | #4

    Tampoco entendí como es la estructura de “svn-users.conf”

    como usar
    htpasswd.exe svn-users.conf miusuario ??

    Saludos
    Gracias

  5. September 2nd, 2007 at 21:08 | #5

    Hola Ricardo:

    La utilidad htpasswd.exe que se distribuye con Apache Web Server es muy sencilla de utilizar.

    http://httpd.apache.org/docs/1.3/programs/htpasswd.html

  6. Edinson Guzman
    September 3rd, 2007 at 16:50 | #6

    Hola, he seguido todos los pasos como los indicas, he creado los directorios necesarios y aun no logro que el apache inicie, existe alguna forma de saber que esta fallando.
    Volvere a hacer todo paso a paso, por cierto utilizo el wamp 1.7.2

  7. September 3rd, 2007 at 18:03 | #7

    Hola Edinson:

    Te recomiendo que mires los logs de Apache Web Server para comprobar que se han cargado correctamente los módulos.

    Un compañero del trabajo ha seguido las notas y no ha tenido ningún problema. Revisa los pasos y si sigues teniendo problemas, me envías un correo con los archivos de configuración.

    Un saludo

  8. santiago
    September 11th, 2007 at 16:59 | #8

    Como estas? muy bueno el tutorial…pero segui todos los pasos y no arranca mas el apache…no me queda muy claro lo ultimo lo de los grupos y usuarios..si podes detallarlo paso por paso o con un ejemplo estaria muy bueno y tambien si tenes tiempo explicar como organizar los directorios .. donde poner el suversion y el repositorio..desde ya muchisimas gracias

  9. September 11th, 2007 at 17:07 | #9

    Hola Santiago:

    ¿Qué mensajes de error obtienes?
    He puesto todos y cada uno de lo pases que seguí. La única parte menos detallada en la que corresponde con la creación de los archivos svn-users.conf y svn-groups.conf, sin embargo, se dice cómo crearlos.

    El directorio para almacenar tus repositorios lo puedes poner donde desees, simplemente tienes que tener cuidado con la directiva SVNParentPath.

    Un saludo

  10. Luis
    September 12th, 2007 at 20:01 | #10

    hola que tal, esta muy bueno el tutorial pero tengo un pequeño problema al cargar los modulos.. segui paso a paso todo el tuto pero al momento de de subir nuevamente el apache no sube y me da error en las librerias q aumente.. no las sube d ninguna forma, no las reconoce.. no se q me puede estar faltando..

    uso el apache apache 2.2.4 y subcontrol 1.4

    gracias y saludos
    Luis

  11. Luis
    September 12th, 2007 at 20:06 | #11

    Este es el error exacto que me sale:

    httpd.exe: Syntax error on line 115 of C:/Archivos de programa/Apache Software F
    oundation/Apache2.2/conf/httpd.conf: API module structure `dav_svn_module’ in fi
    le C:/Archivos de programa/Apache Software Foundation/Apache2.2/modules/mod_dav_
    svn.so is garbled – perhaps this is not an Apache module DSO?

    Saludos
    Luis

  12. September 18th, 2007 at 17:32 | #12

    Hola Luis:

    ¿Has usado las mismas versiones que indico en el post?

    Un saludo

  13. Palacios
    December 28th, 2007 at 00:25 | #13

    Hola

    Tengo un apache apache_2.0.61-win32-x86-openssl-0.9.7m.msi y un subversion svn-1.4.5-setup.exe

    Me sale un mensaje cada vez que deseo iniciar el servicio Apache

    Que hay un error de sintaxis en el archivo httpd.conf
    Unknow DAV Provider: snv

    Cualquier Informacion de antemano se los agradezco

    Saludos

  14. December 28th, 2007 at 01:36 | #14

    Hola:

    Revisa la configuración porque debes tener algún error sintáctico. Si me envías los archivos de configuración, puedo echarles un ojo.

    Un saludo

  15. Pisistrato
    January 14th, 2008 at 21:37 | #15

    Saludos muy buen tutorial

    yo uso XAMPP

    trate de implementarlo y no pude.

    Alqgiein me puede ayudar.

    Gracias de antemano

  16. William Diaz Pabón
    January 15th, 2008 at 23:03 | #16

    Tengo Apache2.2.4, Subversion 1.4.4, Windows 2003 Server.

    Cuando se trata de subir el servicio muestra una alerta con el mensaje: the requested operation has falied.

    No muestra nada en los archivos log.

    Haciendo pruebas de margen y error detecte que son las versiones de los modulos que se copian en la carpeta modules.

    Pero yo baje la version que indican en esta pagina, que sera?

  17. Pisistrato
    January 17th, 2008 at 05:48 | #17

    Saludos amigo excelente tutorial

    yo tengo el siguiente bugs

    use todas la versiones que tu dices apache 2.2.6 y el svn 1.4.4
    cuando intento crear un directorio el el repositorio me da el siguiente error

    500 internal server error

    seguido de unos caracteres
    no hace nada
    me puedes ayudar

  18. February 16th, 2008 at 05:53 | #18

    con referecnial al error:

    httpd.exe: Syntax error on line 115 of C:/Archivos de programa/Apache Software F
    oundation/Apache2.2/conf/httpd.conf: API module structure `dav_svn_module’ in fi
    le C:/Archivos de programa/Apache Software Foundation/Apache2.2/modules/mod_dav_
    svn.so is garbled – perhaps this is not an Apache module DSO?

    El problema esta en que estas usadon los .so y .dll de la version de subversion para apache 2.0.x, yo lo solucione remplazando estos archivos por los de la version de subversion para apache 2.2.x y segui los mismo pasos de esta gui y funciono a la perfeción, espero les sirva de ayuda a los que se les presente el mencionado error.

    Saludos

  19. Wilmar
    February 21st, 2008 at 20:27 | #19

    De casualidad no hay un manual para apeche 2.0.50
    svn-win32-1.4.6. espero me ayuden………….

  20. March 26th, 2008 at 23:25 | #20

    Muchas muchas gracias!!!
    efectivamente, se debe instalar el add-on de Apache 2.2.4 porque el WAMP 1.7.1 viene con Apache 2.0.X y entonces los módulos del subversion no le funcionan.

    El Add-on lo pueden descargar de:
    http://www.wampserver.com/en/addons_apache.php

    Cordialmente,
    Juan David.

  21. Juan Carlos
    April 30th, 2008 at 17:20 | #21

    Muy bueno esto gracias !! aprendi mucho a conf el apache!! =)

  22. Wiserlander
    September 28th, 2009 at 15:50 | #22

    Hola, solo agradecer este aporte, siempre es bienvenida una ayuda, mas aun por la buena disponibilidad que tienes para resolver dudas de los usuarios…

    GRACIAS!!!

  23. Wiserlander
    September 28th, 2009 at 15:55 | #23

    Perdon por el doble mensage, pero como no se puede editar el anterior.

    Encontre algo que podria ayudar a alguien o complementar este articulo.
    Espero que sirva de algo…

    http://www.kagueto.com/Web/Resources/Files/SVN.pdf

    Saludos

  24. September 28th, 2009 at 21:46 | #24

    @Wiserlander

    Muchas gracias a ti por tus palabras.

    Un saludo

  25. Gabriel
    January 6th, 2010 at 20:46 | #25

    manuel muy interesante tu articulo
    pero me sale un errordespues de hacer todo lo que describes
    al iniciar el apache me sale un error de que no encuentra los modulos que ya copie desde svn a apache… si te has encontrado cn algo asi
    favor escribirme…
    Saludos

  26. January 6th, 2010 at 21:03 | #26

    @Gabriel
    Hola Gabriel:

    Necesitaría que me proporcionases más datos. Al menos los mensajes de error que aparecen en los logs. ¿Dónde estás colocando los módulos?

    Un saludo

  27. Gabriel
    January 6th, 2010 at 21:40 | #27

    Este es :
    [warn] module dav_module is already loaded, skipping httpd.exe: Syntax error on line 128 of C:/Archivos de Programa/Apache SoftwareFoundation/Apache2.2/conf/httpd.conf: Can’t locate API module structure ‘authz_mod’ in file C:/Archivos de Programa/Apache SoftwareFoundation/Apache2.2/modules/mod_authz_svn.co: No error.

    Estoy usando las siguientes versiones:
    Setup-Subversion-1.6.6.msi
    apache_2.2.14-win32-x86-openssl-0.9.8k.msi

    Saludos

    Gracias

  28. Gabriel
    January 6th, 2010 at 21:43 | #28

    La ultima linea del error es:

    SoftwareFoundation/Apache2.2/modules/mod_authz_svn.so: No error.

    Saludos

  29. David
    September 11th, 2010 at 17:22 | #29

    Hola, gracias por el tutorial. Me pierdo un poco en el punto 7 . No se como el usuario creado hace referencia al grupo. Normalmente trabajo con un cliente de subversion y los proyectos en los que trabajo contienen los directorios trunk, tags y branches. He utilizado, como escribes, la utilidad svnadmin para crear el repositorio y no aparecen dichos directorios. Los tengo que crear manualmente en algun subdirectorio del repositorio??? Tampoco se cual es la url del repositorio creado.

    Saludos.

    David.

  30. David
    September 11th, 2010 at 23:16 | #30

    Para aquellos que con las versiones en este tutorial no lo consigan, con el siguiente link podrán econtrar otra oportunidad:
    http://svn.spears.at/

  31. September 12th, 2010 at 12:35 | #31

    @David

    Con svnadmin creas el repositorio, pero el layout (estructura) lo tienes que crear tú mismo una vez que tengas una copia de trabajo (tras hacer un checkout).

    La referencia que has puesto está mucho más detallada y servirá de ayuda a otros lectores de este blog. Gracias.

  32. David
    September 14th, 2010 at 21:52 | #32

    para quién intente seguir el tutorial del enlace de arriba, debe de saber que seguramente exista un bug a la hora de crear el archivo de usuarios con la utilidad htpasswd. Cada vez que se inserta uno, borra el anterior Asi que el que quiera más de un usuario, tendrá que hacerlo de forma manual. Simplemente creandolos en un archivo temporal y uno a uno pergarlos en el archivo final, o cualquier otra solución más rudimentaria.

    Saludos.

    David

  1. No trackbacks yet.