Activar subversion con Apache en Slackware 12

Subversion según wikipedia es:

Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias.

Fuente: Wikipedia

y un sistema de control de versiones es:

Se llama control de versiones a la gestión de versiones (revisiones) de todos los elementos de configuración que forman la línea base de un producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado junto a las posibles especializaciones realizadas para algún cliente específico.

El control de versiones se realiza principalmente en la industria informática para controlar las distintas versiones del código fuente. Sin embargo, los mismos conceptos son aplicables a otros ámbitos y no sólo para código fuente sino para documentos, imágenes, etcétera.

Fuente: Wikipedia

En Slackware ya viene por defecto, si hacemos una instalación completa, y solo debemos configurarlo en cinco pasos para que todo funcione perfectamente con Apache 😀

Primer Paso

Lo primero será crear un repositorio para trabajar, lo mejor será crearlo en una carpeta donde tendremos organizados todos los repositorios, yo por conveniencia lo dejaré en la carpeta /srv/www, para ello como root creamos la carpeta de los repositorios, creamos el primer repositorio llamado prueba y luego le damos permisos de escritura a apache:

# mkdir /srv/www/repositorios
# svnadmin create /srv/www/repositorios/prueba
# chown apache.apache -R /srv/www/repositorios/prueba

Segundo Paso

Con el repositorio creado configuramos Apache para que maneje el servidor, deberemos editar el archivo /etc/httpd/httpd.conf, con cualquiera de los editores de consola o alguno gráfico; verificamos que tengamos habilitada la siguiente línea en la carga de módulos, si no hemos modificado el archivo de configuración no tenemos que verificar ésto:

LoadModule dav_module lib/httpd/modules/mod_dav.so

Luego vamos al final del archivo y descomentamos o agregamos las siguientes líneas:

  • LoadModule dav_svn_module lib/httpd/modules/mod_dav_svn.so
  • LoadModule authz_svn_module lib/httpd/modules/mod_authz_svn.so

Ahora creamos el acceso al directorio, para ello agregamos las siguientes líneas al httpd.conf:

<Directory «/srv/www/repositorios»>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>

Si deseamos acceso con usuario y contraseña agregamos lo siguiente:

<Location /repositorios>
DAV svn
SVNParentPath /srv/www/repositorios
SVNListParentPath on
AuthType Basic
AuthName «Repositorio SVN»
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>

Ahora solo guardamos el archivo.

Tercer Paso

Si configuramos para accesos con usuario y contraseña debemos crear el archivo que utilizará apache para verificar el acceso:

# htpasswd -cm /etc/svn-auth-file prueba

con esto creamos el archivo (-c) /etc/svn-auth-file y añadimos el usuario «prueba» guardando la contraseña con encriptación MD5 (-m)

Si deseamos añadir mas usuarios simplemente ejecutamos con el parámetro -m:

# htpasswd -m /etc/svn-auth-file test

Si deseamos eliminar un usuario simplemente editamos el archivo /etc/svn-auth-file y eliminamos la línea donde esta el usuario.

Cuarto Paso

Reiniciamos el servicio de Apache para poder aplicar los cambios:

# /etc/rc.d/rc.httpd restart

Si todo va bien no obtendremos ningún mensaje de error; ahora verificamos que todo funcione bien, desde cualquier navegador web accedemos al repositorio colocando la siguiente dirección: http://localhost/repositorios y nos devolverá una página asi:

Collection of Repositories


Powered by Subversion version 1.4.4 (r25188).

Quito Paso

Iniciamos el repositorio añadiendo las carpetas necesarias para trabajar, el arbol de archivos lo podemos crear en la carpeta temporal, ya que solo las necesitamos para generar el árbol principal:

$ mkdir /tmp/prueba
$ mkdir /tmp/prueba/branches
$ mkdir /tmp/prueba/tags
$ mkdir /tmp/prueba/trunk

Subimos estos archivos al repositorio:

$ svn import /tmp/prueba http://localhost/repositorios/prueba

Ahora ya podemos subir los fuentes de algún proyecto, los cuales generalmente van a la carpeta trunk, de la siguiente manera:

$ cd /path/al/proyecto
$ svn import http://localhost/repositorios/prueba/trunk -m «inicio del proyecto»

si necesitan mas información sobre los comandos de SVN les recomiendo leer el Libro de SVN.

Enlaces:
Libro de SVN -> http://svnbook.red-bean.com/nightly/es/index.html
Página de Subversion -> http://subversion.tigris.org/

6 responses to “Activar subversion con Apache en Slackware 12”

  1. DanielX says :

    Hola!!! muy interesante tu manual sobre Subversion en Slackware 12, pero como que se deberia crear un enlace simbolico pues a mi me salia que no se podia encontrar la carpeta cliente despues de buscar porque pasaba eso era que esta creado en /srv/www/capeta y en el httpd.conf el directory por default te busca dento de solo lo que hice fue

    ln -s /srv/www/repositorio /var/www/htpdoc

    y listo y gracias por el manual que es de mucha ayuda 🙂

  2. dhabyx says :

    @Daniel: Es extraño que esto sucediera, pues yo no tuve que hacer esto, simplemente cree la carpeta dentro de /srv/www/ que en realidad es un enlace hacia la carpeta /var/www, a menos que hayas cambiado esto en tu Slackware; el problema pudo haber estado dentro de la declaración del <Direcotry «Path_absoluto»> o en la declaración del <Location «Path dentro del host en http»> o quizás en la opción «SVNParentPath path_absoluto»

    Saludos.

  3. _ALEX_ says :

    hola, todo va bien hasta el cuarto paso donde al teclear http://localhost/repositorios (tambien le llame ‘repositorios’) no me dice «collection of …. » ni lo de «powered by…. » ni nada, solo me aparece lo normal en apache, «index of/repositorios» ……… creo que tiene que ver con el 2do paso , pero segun yo lo he hecho todo bien, al reiniciar el apache no marca error con los modulos svn………

    alguna ayuda/idea? gracias adelantadas.

  4. dhabyx says :

    @ALEX: revisa lo que escribio en el comentario DanielX o busca documentacion sobre los alias para el httpd.conf

    Saludos

  5. _ALEX_ says :

    Hola de nuevo, gracias, no se exactamente por que pero sigue sin mostrar el título de «collection of…. » lo muestra como un directorio normal de apache ( «index of /repositorios» ) sin embargo todo funciona bien con svn y con los repositorios. Ya stoy adentrandome con lo de subversion y hasta ahora todo bien.

    Saludos y suerte con el blog.

  6. Venon says :

    Hola, he realizado los pasos anteriores excepto lo de la contraseña, ya que por el momento no requiero la validación mediante ella, igual me lo lista como un directorio normal de apache, pero no he podido subir nada, me genera el siguiente error cuando intento subir un archivo:
    svn: PROPFIND request failed on ‘/repositorios/prueba’
    svn: PROPFIND of ‘/repositorios/prueba’: 301 Moved Permanently (http://www.misitio.com)

    Qué puedo hacer, soy nuevo en esto, por favor con el menor detalle posible

Replica a _ALEX_ Cancelar la respuesta