Si no sabes lo que es Subversion y te pica la curiosidad, te recomiendo que leas lo que dice la Wikipedia para describir este software aquí.
Pues bien, básicamente se trata de un sistema de control de versiones muy útil cuando se trabaja en equipo y deseas tener un repositorio centralizado de la información en el que volcar y tomar de él el último estado del contenido y que además guarda información de versiones anteriores y permite restaurarlas.
En este post pretendo indicar los pasos básicos para crear un repositorio y “levantar” el servidor de subversion, pasos que serán válidos tanto para Windows como para Linux y que tras haberlos hecho varias veces en poco tiempo he creído que sería útil, tanto para mí como para otros, el crear un post a este respecto.
Los pasos a realizar (en una distro Ubuntu, aunque para otro tipo de distribuciones Linux serán muy similares, incluso para Windows) serán los siguientes:
- Instala el servidor de subversion mediante el siguiente comando:
# aptitude install subversion - Crea el directorio en el que almacenarás los distintos repositorios
# mkdir ...Repositorios - Crea el repositorio:
# svnadmin create ...Repositorios/Repositorio1 - Levanta el servidor de subversion para que atienda las peticiones al sistema de versiones:
# svnserve -d -r ...RepositoriosDe este modo, con la opción “-d” se activa el demonio del servidor de subversión y mediante la opción “-r …Repositorios” se le indica que ha de tomar como raíz de las peticiones el directorio …Repositorios.
- Incorpora el contenido inicial del repositorio suponindo que éste se encuentra en /home/pepito/datos:
# svn import /home/pepito/datos svn://Repositorio1 -m "Import inicial del proyecto"
De este modo queda montado el repositorio y listo el demonio para atender las peticiones vía svn. Si además de montarlo, deseas configurar el tipo de acceso de las personas autorizadas y las no autorizadas, definir logins y passwords para los miembros del equipo deberás hacer lo siguiente:
- Abre el fichero …Repositorios/Repositorio1/conf/svnserve.conf e indica el tipo de permisos para los usuarios no autenticados (generalmente none):
anon-access = none | read | writeHaz lo mismo para los usuarios autenticados (habitualmente write):
auth-access = none | read | writeSi deseas que los usuarios se identifiquen mediante login y password incluye una línea como la siguiente:
password-db = passwdDa un nombre a tu repositorio:
realm = Mi primer repositorio - Si anteriormente decidiste que los usuarios del repositorio emplearían login y password, para configurar los valores de cada uno de los usuarios deberás abrir el fichero …Repositorios/Repositorio1/conf/passwd, ya que fue éste el fichero que indicaste en svnserve.conf (apartado password-db).El contenido que deberás incluir en este fichero será la siguiente línea para cada uno de los usuarios del repositorio:
login = passwd
Y con esto ya tendrías tu repositorio funcionando y esperando recibir peticiones del tipo:
$ svn checkout svn://tumaquina/Repositorio1 ...CopiaLocal/
$ svn ci -m "Subiendo cambios..."
$ svn add fichero
$ svn update
Por último indicar que, obviamente, para que el repositorio funcione el demonio deberá estar activo, para comprobarlo puedes hacer:
ps -aux | grep svn
Pues nada más, espero que este post te sea de ayuda si decides montar tu propio servidor Subversion, si te interesa una guía para conocer los númerosos comandos y funcionalidades que te ofrece te recomiendo este FAQ, porque es bastante sencillo y cuenta todo lo que necesita saber un cliente de este software. Aunque, por supuesto, siempre está disponible “svn –help” o “man help” para cualquier tipo de duda.







8 Comentarios ↓
Javier el 12 de Julio de 2007 a las 16:43
Pues a mi no me funciona, cuando hago eso y voy a importar los ficheros me dice…
svn: Nombre de la máquina Repositorios1 desconocido
Jaluro el 13 de Julio de 2007 a las 9:18
De acuerdo Javier, quizás necesites sustituir al hacer el import el campo:
svn://Repositorio1por
svn://localhost/Repositorio1Prueba a ver si te funciona así. Y si no, sigue “dándonos la lata” a ver si conseguimos poner en marcha tu repositorio.
Ciao
Agradecido el 10 de Diciembre de 2007 a las 14:05
Muchas gracias por las molestias de escribir el tutorial. Necesitaba encontrar la manera de dar de alta usuarios en el repositorio y me ha venido bien la explicación
Nayland Smith el 3 de Junio de 2008 a las 12:55
Muchas gracias.
Necesitaba instalar un servidor SVN en la oficina y tu manual ha funcionado a la perfección.
1 saludo.
juan el 25 de Julio de 2008 a las 0:25
puedes poner la sentencias pa windows
Jaluro el 25 de Julio de 2008 a las 10:22
Hola juan, respecto a tu pregunta quizás te valga esta página para saber cómo hacerlo en windows.
Aunque, por supuesto, te recomiendo que des el salto y te vengas a Linux. Cosas como éstas hacen que, por su sencillez en el SO del pingüino, muchos usuarios se pasen al mundo del software libre.
Ciao
Carlos el 11 de Noviembre de 2008 a las 18:06
muy practico!!!
ahora una consulta, si quiero controlar el acceso a usuarios a cada directorio, por ejemplo, el user1 solo puede acceder a la a carpeta web1 y web2 , y el user3 solo a la web2.
Como se configura esto? Gracias
Jaluro el 11 de Noviembre de 2008 a las 19:05
Hola Carlos, para hacer lo que pides tienes que emplear la cláusula
authz, tienes un ejemplo de cómo hacerlo en el siguiente blog:http://www.albertocalderon.cl/web-juegos-y-otros/instalar-servidor-de-subversion
Ciao y suerte con tu repositorio
Deja tu comentario
Por favor, no uses un lenguaje inapropiado, spam o cualquier otro tipo de conducta inadecuada. De lo contrario me reservo el derecho de eliminar y/o modificar aquellos comentarios que contengan algo de lo citado anteriormente.