Instalar un servidor de Subversion en Ubuntu

Ayer escribi un articulo de como Instalar CVS en Ubuntu. En los comentarios Kikorb me indica que en su web tiene un articulo similar pero referido a Subversion. Asi que me decido a colgarlo aqui. La verdad, prefiero Subversion aunque por motivos laborales el sistema que tengo que utilizar es CVS.

Articulo Original | La web de Kikorb

Instalacion y configuracion de Subversion

Me embarco en la aventura de instalar subversion al servidor… ¿Qué es subversion?

Subversion es un servidor de control de versiones. Si estas trabajando en un proyecto grande, es lógico que con el paso del tiempo vayas haciendo cambios mas o menos importantes. Puede que en un momento dado quieras volver a una versión previa de un archivo, o de todo el proyecto, que desees ver quién hizo un cambio y porqué… para eso está subversion.

Se supone que tenemos configurado un servidor bajo Apache en una distribución Debian.

Primer paso: Instalación de las herramientas necesarias

Instalamos los paquetes que nos hacen falta para crear repositorios:

sudo aptitude install subversion subversion-tools

Necesitamos dos módulos de apache instalados en nuestro servidor, si haremos uso de svn a través de internet… (obvio, al menos para mí)

Los modulos son dav y dav_svn. Para comprobar que los tenemos:

a2enmod dav
a2enmod dav_svn

Si no estaban instalados, los instalamos:

sudo aptitude install libapache2-svn

Segundo paso: Creación de grupos y usuarios permitidos

Creamos un grupo subversion para manejar fácilmente los permisos

groupadd subversion

Añadimos a dicho grupo los usuarios que queremos que usen de algún modo nuestro servidor

usermod -a -Gsubversion user1
usermod -a -Gsubversion user2
usermod -a -Gsubversion user3

Ahora pasamos a crear los ficheros de acceso, que guardan los nombres y contraseñas de esos usuarios que harán uso del repositorio:

htpasswd2 -c /etc/apache2/dav_svn.passwd user1
htpasswd2 /etc/apache2/dav_svn.passwd user2
htpasswd2 /etc/apache2/dav_svn.passwd user3

El primero lleva -c por la simple razón de que crea el fichero. Los demás se añaden a él.
Cada vez que introduzcamos un usuario, se nos pedirá su nueva contraseña.

Tercer paso: Creación de un repositorio

Ahora creamos la carpeta donde ubicaremos el repositorio:

sudo mkdir /home/SVN
sudo svnadmin create /home/SVN

Y le damos los correspondientes permisos

chown -R www-data:subversion /home/svn/
chmod -R 770 /home/svn/

Cuarto paso: Configurando Apache para los repositorios

Pasamos a configurar el fichero que gestiona el módulo de apache para el svn:

sudo gedit /etc/apache2/mods-available/dav_svn.conf

Dentro ponemos esta configuración:

##
# SVN
#
<Location /svn>
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "Repositorio Subversion del proyecto"
AuthUserFile /etc/apache2/dav_svn.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

Si queremos quitar el modo lectura a cualquiera, porque nuestro proyecto sea confidencial o no queramos que sea visto desde fuera, basta reemplazar la sección:

<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>

por

Require valid-user

Reiniciamos el servicio de apache para que nos rearranque con los cambios introducidos.

sudo /etc/init.d/apache2 restart

Notas finales

Si queremos añadir usuarios a nuestros repositorios:

htpasswd2 /etc/apache2/dav_svn.passwd otro_usuario

Si queremos crear nuevos repositorios repetiremos todo desde el tercer paso, creando fichero de contraseñas con otro nombre (seguridad), añadiendo al final del fichero /etc/apache2/mods-available/dav_svn.conf la configuracion del nuevo servidor (seguramente cambia el path al fichero de contraseñas y el path al propio repositorio.

Eso es todo. Disfrutad.

28 Respuestas to “Instalar un servidor de Subversion en Ubuntu”


  1. 1 kikorb junio 30, 2007 a las 11:37 am

    Gracias por publicar este tutorial. Tienes un gran sitio.

  2. 2 Beowulf May 12, 2008 a las 12:39 pm

    groupadd subversion… cuando me dices que ponga esta linea me dice que ya tengo el grupo
    usermod -Gsubversion user1 en esta linea me dice que no existe el usuario aun que he puesto ese usuario y he puesto otro y pues solo hasta ahi llego

    de todas gracias… esto de subversion es mas complicado de que creia

  3. 3 Beowulf May 12, 2008 a las 1:15 pm

    ya funciono , quite el grupo que ya tenia y hice los pasos que pusistes

    solo tube errores en

    htpasswd2 -c /etc/apache2/dav_svn.passwd user1
    utilice

    htpasswd -c /etc/apache2/dav_svn.passwd user1

    y en

    chown -R www-data:subversion /home/svn/
    chmod -R 770 /home/svn

    tube que usar sudo
    sudo chown -R www-data:subversion /home/svn/
    sudo chmod -R 770 /home/svn

    pero ahoro como lo uso… gracias de todas manera…
    es lo mas lejos que he llegado

  4. 4 superpiwi May 12, 2008 a las 7:07 pm

    buff, poco te puedo ayudar. Al final no me dejaron usar subversion y sigo utilizando CVS.
    Pero aqui hay un buen tutorial:

    http://www.kikov.org/subversion-tutorial-es-index

  5. 5 Cristóbal agosto 9, 2008 a las 12:42 am

    La línea:
    usermod -Gsubversion user1

    Cambiala por:
    usermod -a -Gsubversion user1

    Resulta que la usé con mi propio usuario y me borró todos los grupos y me dejó «subversion» con lo cual, al no pertenecer al grupo «admin», no me dejó volver a hacer «sudo».

    Lo arreglé usando el CD del Kubuntu, montando el disco duro y editando a mano «/etc/group».

    Con la opción «-a», en vez de sustituir, añade grupos.

    Gracias por el tutorial 😉

  6. 7 e------ agosto 21, 2008 a las 5:57 pm

    oye como le hiciste para ke t volviera a dejar hacer sudo…

  7. 8 Nava septiembre 12, 2008 a las 3:40 am

    Que tal, excelente explicación, la unica duda que sigo teniendo, es, en si, ¿para que se necesita el modulo de apache? ¿Podria usar subversion sin este modulo?

    Gracias

  8. 9 J. Marin enero 6, 2009 a las 12:08 am

    Un buen aporte Gracias…

  9. 10 mario enero 8, 2009 a las 9:54 am

    Buen tutorial, gracias.

  10. 11 Adrian Marin enero 19, 2009 a las 3:35 am

    Como debo configurar el servidor para poder acceder a el por Internet

    Gracias

  11. 12 Fernando enero 26, 2009 a las 11:31 pm

    A ver salao, edita el post y dile a la gente que use

    sudo usermod -a -G subversion usuario

    para que no nos quedemos sin los grupos a los que perteneciamos

  12. 13 superpiwi enero 26, 2009 a las 11:36 pm

    @Cristobal & @Fernando

    Editada. Thx.

  13. 14 tirengarfio May 5, 2009 a las 3:55 pm

    Hola,

    gracias por el tutorial.

    Creo que no estaria de más añadir una parte en la que se pruebe que todo se ha hecho y funciona de manera correcta.

    Un saludo

  14. 15 Jhonathan junio 30, 2009 a las 10:46 am

    me costó mucho, sobre todo porque el apache2 no estaba bien configurado, pero ya tengo acceso cuando voy a http://localhost/svn/

    mi pregunta sería y ahora cómo hago para agregar los archivos de mi proyecto y que mis compañeros de grupo puedan tener acceso desde sus casas

  15. 16 zague58 agosto 6, 2009 a las 3:59 pm

    Listo gracias ya quedó todo configuarado, funciona perfectamente.

  16. 17 Leonel diciembre 17, 2009 a las 2:43 pm

    Muy buen post, habia leido lo mismo en http://www.hasheado.com/instalar-servidor-subversion-svn-en-ubuntu.html pero tengo el mismo problema que Jhonathan, como hago para agregar los archivos de mis proyectos??

  17. 18 gabriel May 21, 2010 a las 5:38 pm

    hola, ya he configurado todo como está en la pág pero no puedo entrar usando un cliente svn

    como compruebo que me funciona

  18. 19 tArKi julio 24, 2010 a las 5:55 pm

    Muchas gracias por el tutorial 🙂

  19. 20 Anonimo febrero 17, 2011 a las 4:37 pm

    Para acceder al repo creado puedes hacerlo por ejemplo usando el puerto 80.

    Para añadir ficheros sencillamente te creas un nuevo fichero en el repo y luego lo añades a subversion con un svn add, también si tienes todo un proyecto y no quieres ir fichero por fichero pues copias el proyecto en el repo y te haces un svn import. También si resulta que tienes un proyecto en un repositorio y quieres traertelo a tu nuevo repositorio entonces primero haces un svn export del repositorio donde esta el proyecto y luego un svn import al repositorio nuevo que acabas de crear.

    Por ejemplo si tienes una carpeta llamada mi_proyecto en tu escritorio, y dentro de esta tienes todos los ficheros de tu proyecto entonces ejecutas:

    svn import /home/Escritorio/mi_proyecto http://mirepositorio

    Si estas en local entonces

    svn import /home/Escritorio/mi_proyecto file:///mirepositorio

    El import te copia los ficheros en el repositorio y ademas te crea la estructura subversion para ellos.

    Espero que sirva de ayuda.

  20. 21 Gicu junio 14, 2011 a las 4:30 pm

    Hola a todos,
    como puedo bajar el repositorio a mi ordenador desde un linux a un windows o sea el svn esta en linux y yo trabajo en windows como lo puedo bajar?
    gracias a todos

    • 22 Gabriel junio 15, 2011 a las 1:59 pm

      Espero haberte entendido. Con el servidor svn instalado en linux tenes que instalar un cliente ( subcommander, tortoice, … ) en el windows y ponerle como dirección de URL la dirección de tu maquina con ejemplo http://«IP»/»location que pusiste»/,
      por ejemplo http://10.0.0.10/svn/

  21. 23 Gicu junio 15, 2011 a las 2:54 pm

    Hola Gabriel gracias por contestarme, estoy usando el tortoisehg y estoy ponendo tal y como tu me lo dices o sea y antes lo probaba asi, pero no funciona me dice que el link que le estoy pasando no existe en hg. algun programa de subversion que tu lo hayas probado y que funcione asi? te lo agradeceria mucho.
    gracias un saludo

    • 24 Gabriel junio 15, 2011 a las 3:45 pm

      El que he usado es el subcommander que funciona para linux y windows aunque el tortoise lo he usado hace algún tiempo.
      lastima que no se que decirte sobre»no existe en hg» pero probá esto:
      Cerrá el cortador de fuego en linux y windows, lo ideal es que le pongas permisos.
      Probá en linux entrar desde el brouser con http://localhost/svn/, si no entra puede ser que el servidor svn no esté escuchando el puerto 8080. No se como se configura eso pero podes probar con
      Reiniciar
      sudo /etc/init.d/apache2 restart
      Detener
      sudo /etc/init.d/apache2 stop
      Iniciar
      sudo /etc/init.d/apache2 start
      Después probá en linux con un cliente y luego en windows. Yo lo que hice es configurar con ip fijas las pc para evitar líos.

      • 25 Gicu junio 15, 2011 a las 3:49 pm

        El problema es solo en windows, pruebo bajarlo en linux y no hay ningun problema se me baja, solo en windows si le pongo la rupa me pone : » ‘https://servidor.net/repos/’ does not appear to be an hg repository» esto con el tortoisehg pero me he creado una cuenta en el tortoisehg y desde alli si que puedo bajar el repository o sea que no se que pasa 😀 igualmente muchas gracias

  22. 26 Gicu junio 15, 2011 a las 3:57 pm

    Hola Gabriel ya esta solucionado, el problema era que estaba usando el tortoiseHG en vez de tortoiseSVN ya funciona perfectamente muchas gracias
    saludos


  1. 1 Subversion + WebSVN en Ubuntu | Guerratopia Trackback en diciembre 18, 2009 a las 12:47 am
  2. 2 Instalar Servidor de SVN en Ubuntu | desarrollophpsenior Trackback en enero 10, 2013 a las 11:41 am

Deja un comentario







¿Es compatible tu equipo con Ubuntu?


( Muchos fondos de pantalla, aqui )

DESCARGATE SCIFI LIFE

365 Dias de Soledad
Me debes los sueños, las promesas y las noches rotas. Me debes la paz, la sonrisa y la esperanza robadas. Me debes la sangre, las lágrimas y el sudor vertido. Me debes las noches vacías, los abrazos anhelados. Me debes un beso de ajenjo de tu amarga boca.

The Ubuntu Counter Project - user number # 11961
Geo Visitors Map

Archivos

May 2007
L M X J V S D
 123456
78910111213
14151617181920
21222324252627
28293031  

Blog Stats

  • 31.401.450 hits