Subversion
De doc.ubuntu-es
Subversion es un sistema de control de versiones open source. Mediante Subversion, puede registrar la historia de archivos de código fuente y documentos. Gestiona archivos y directorios a través del tiempo. Se coloca un árbol de archivos en un repositorio central. El repositorio es como un servidor de archivos ordinario, excepto en que recuerda todos los cambios que se realizan sobre los archivos y los directorios que contiene. Instalación
Para acceder a un repositorio de Subversion mediante el protocolo HTTP, debes instalar y configurar un servidor web. Apache2 ha demostrado funcionar bien con Subversion. Para acceder al repositorio de Subversion repository mediante el protocolo HTTPS, debes instalar y configurar un certificado digital en tu servidor web Apache 2.
Para instalar Subversion, ejecuta la siguiente orden en la línea de órdenes de una terminal:
sudo apt-get install subversion libapache2-svn
Tabla de contenidos |
[editar] Configuración del servidor
Este paso asume que ya tienes instalados los paquetes mencionados en su sistema. Esta sección te explica cómo crear un repositorio de Subversion y acceder al proyecto.
[editar] Crear un repositorio de Subversion
El repositorio de Subversion puede ser creado usando la siguiente orden en la línea de órdenes de una terminal
svnadmin create /path/to/repos/project
[editar] Métodos de acceso
Se puede acceder («check out») a los repositorios de Subversion a través de muchos métodos diferentes --en un disco local, o a través de varios protocolos de red. Una ubicación dentro del repositorio, sin embargo, es siempre una URL. La tabla describe cómo se corresponden diferentes esquemas de URL con los métodos de acceso disponibles. Métodos de acceso
| Esquema | Método de acceso |
|---|---|
| file:// | acceso directo al repositorio (en disco local) |
| http:// | Acceso a través del protocolo WebDAV a un servidor web Apache2 con Subversion incluido |
| https:// | Igual que http://, pero con cifrado SSL |
| svn:// | Acceso al servidor svnserve mediante el protocolo predeterminado |
| svn+ssh:// | Igual que svn://, pero a través de un túnel SSH |
En esta sección, veremos cómo configurar Subversion para todos esos métodos de acceso. Aquí cubrimos lo básico. Para más detalles avanzados sobre su utilización, consulte el libro de svn.
[editar] Acceso directo al repositorio (file://)
Este es el método de acceso más sencillo. No necesita que se esté ejecutando ningún proceso de servidor Subversion. Este método de acceso se usa para acceder a Subversion desde la misma máquina. La sintaxis de la orden, introducida en la línea de órdenes de una terminal, es la siguiente:
svn co file:///path/to/repos/project
o
svn co file://localhost/path/to/repos/project
Los permisos del repositorio dependen de los permisos del sistema de archivos. Si el usuario tiene permisos de lectura/escritura, puede hacer «checkout» y «commit» sobre el repositorio.
[editar] Acceso mediante el protocolo WebDAV (http://)
Para acceder al repositorio de Subversion a través del protocolo WebDAV, debes configurar tu servidor web Apache2. Debes añadir lo siguiente en tu archivo /etc/apache2/apache2.conf:
<Location /svn> DAV svn SVNPath /path/to/repos AuthType Basic AuthName "El nombre de su repositorio" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
Ahora debes crear el archivo /etc/subversion/passwd, que contiene los detalles de autenticación del usuario. Para añadir una entrada, p.e. para añadir un usuario, puede ejecutar esta orden en una terminal:
htpasswd2 /etc/subversion/passwd user_name
Ésta orden le pedirá que introduzca su contraseña. Cuando lo haga, se añadirá el usuario. Entonces, para acceder al repositorio puede ejecutar esto:
svn co http://servername/svn
| | La contraseña se transmite como texto plano. Si te preocupa que puedan interceptar su contraseña, se recomienda que usar cifrado SSL. Para más detalles, consulta la siguiente sección. |
[editar] Acceso mediante el protocolo WebDAV con cifrado SSL (https://)
El acceso a un repositorio de Subversion por medio del protocolo WebDAV con cifrado SSL (https://) es similar al http:// excepto en que debes instalar y configurar el certificado digital en tu servidor web Apache2.
Puedes instalar un certificado digital emitido por una autoridad de certificación como Verisign. También puedes instalar tu propio certificado auto-firmado.
Este paso asume que tienes instalado y configurado un certificado digital en tu servidor web Apache2. Ahora, para acceder al repositorio de Subversion, por favor, consulta la sección anterior. Los métodos de acceso son exactamente los mismos, excepto el protocolo. Debes usar https:// para acceder al repositorio de Subversion.
[editar] Acceso mediante un protocolo personalizado (svn://)
Cuando se haya creado el repositorio de Subversion, podrás configurar el control de acceso. Puedes editar el archivo /ruta/al/repositorio/proyecto/conf/svnserve.conf para configurar el control de acceso. Por ejemplo, para configurar la autenticación, puedes descomentar las siguientes líneas en el archivo de configuración:
# [general] # password-db = passwd
Tras descomentar las líneas anteriores, podrás mantener la lista de usuarios en el archivo passwd. Para ello, edita el archivo passwd en el mismo directorio y añade el nuevo usuario. La sintaxis es la siguiente:
username = password
Para más detalles, por favor consulta el archivo.
Ahora, para acceder a Subversion a través del protocolo personalizado svn://, bien sea desde la misma máquina o desde otra diferente, debes ejecutar svnserver usando la orden svnserve. La sintaxis es la siguiente:
svnserve -d --foreground -r /ruta/al/repositorio # -d -- modo demonio # --foreground -- ejecutar en primer plano (útil para depuración) # -r -- raíz del directorio a servir
Para más detalles de uso, por favor, consulte:
svnserve --help
Una vez hayas ejecutado la orden, Subversion comenzarás a escuchar por el puerto predeterminado (3690). Para acceder al repositorio del proyecto, deberás ejecutar la siguiente orden en la línea de órdenes de una terminal:
svn co svn://hostname/project project --username user_name
En función de la configuración del servidor, se te solicitará una contraseña. Cuando te hayaa autenticado, se recuperará («check out») el código desde el repositorio de Subversion. Para sincronizar el repositorio del proyecto con la copia local, puedes ejecutar la sub-orden update. La sintaxis de la orden, introducida en la línea de órdenes, es la siguiente:
cd project_dir ; svn update
Para más detalles sobre cómo usar cada sub-orden de Subversion, puedes consultar el manual. Por ejemplo, para aprender más sobre la orden co (checkout), ejecuta la siguiente orden en la línea de órdenes de una terminal:
svn co help
Acceso mediante un protocolo personalizado con cifrado SSL (svn+ssh://)
El proceso de configurar un servidor es el mismo que con el método svn://. Para más detalles, por favor, consulta la sección anterior. Este paso asume que has seguido los pasos anteriores y que has iniciado el servidor de Subversion usando la orden svnserve.
También asume que se está ejecutando el servidor ssh en esa máquina y que se permiten las conexiones entrantes. Para confirmarlo intenta iniciar una sesión en esa máquina usando ssh. Si puedes entrar, todo está correcto. Si no puedes entrar, corrígelo antes de continuar.
El procotolo svn+ssh:// se utiliza para acceder al repositorio de Subversion usando el cifrado SSL. Los datos transferidos se cifran usando este método. Para acceder al repositorio del proyecto (por ejemplo, con un «checkout») debes usar la siguiente sintaxis:
svn co svn+ssh://hostname/var/svn/repos/project
| Debes usar la ruta completa (/ruta/al/repositorio/del/proyecto) para acceder al repositorio de Subversion usando este método de acceso. |
En función de la configuración del servidor, se te solicitará una contraseña. Debes introducir la misma contraseña que usa para iniciar sesión con ssh. Cuando te haya autenticado, se recuperará («check out») el código del repositorio de Subversion.

