Configurar un repositorio Subversion

Generalidades

Este artículo explica cómo crear un repositorio Subversion en tu servidor DreamHost y conectarte a este de forma segura a través de svn+ssh.

DreamHost admite el alojamiento de repositorios Subversion usando svn+ssh. La autenticación se gestiona mediante SSH, por lo que te conectas con tus credenciales de shell de DreamHost existentes o una llave de SSH, y no se requiere un archivo de contraseña de Subversion independiente.

Requisitos Previos

Estos pasos asumen que está configurando tu repositorio SVN en tu servidor de DreamHost y que dispones de una cuenta de shell de DreamHost con acceso SSH. Revisa el artículo Generalidades de SSH para obtener instrucciones sobre cómo iniciar sesión en tu servidor.

Cosas a saber antes de comenzar

  • Conéctate a tu repositorio a través de svn+ssh, que utiliza SSH para la autenticación y el transporte.
  • El protocolo svn:// (el daemon svnserve independiente) y el módulo mod_dav_svn de Apache no son soportados con DreamHost.

¿Cómo crear un repositorio?

Los siguientes pasos crean un repositorio dentro de una carpeta específica en tu directorio personal.

Este ejemplo utiliza el nombre de repositorio my_project, y la ubicación del repositorio está en el directorio /home/username/svn/.

Iniciar el repositorio

Se recomienda mantener todos los repositorios dentro de una carpeta dedicada en el directorio principal del usuario.

  1. Crea el directorio svn en el directorio principal:

    [server]$ mkdir -p ~/svn
  2. Usa el comando svnadmin para crear tu repositorio:

    [server]$ svnadmin create ~/svn/my_project

Configurar el acceso al repositorio

Edita la configuración del repositorio para controlar quién puede leerlo y escribirlo. Cuando te conectas a través de svn+ssh, SSH realiza la autenticación, por lo que no se utiliza el archivo conf/passwd y no configuras una password-db.

  1. Abre el archivo svnserve.conf en el directorio conf de tu repositorio:

    [server]$ nano ~/svn/my_project/conf/svnserve.conf
  2. Configura los siguientes parámetros mínimos y, a continuación, guarda el archivo:

    [general]
    anon-access = none
    auth-access = write

Revisar el repositorio

Conéctate usando svn+ssh usando tu usuario shell de DreamHost, tu dominio y la ruta absoluta al repositorio. Reemplaza username, example.com y my_project con tus valores.

  1. Revisa el repositorio:

    [local]$ svn checkout svn+ssh://username@example.com/home/username/svn/my_project

Si configuraste svnserve con una raíz de repositorio, puedes usar una URL más corta:

[local]$ svn checkout svn+ssh://username@example.com/my_project

¿Cómo puedo permitir que varias personas accedan a un repositorio?

Si varios desarrolladores comparten una única cuenta de shell, Subversion no puede distinguirlos de forma predeterminada, por lo que las confirmaciones no se atribuyen individualmente. Para asignar un nombre de usuario de Subversion diferente a cada llave de SSH, configura los comandos obligatorios en ~/.ssh/authorized_keys junto con svnserve --tunnel-user.

Preguntas Frecuentes

¿DreamHost es compatible con el protocolo svn:// o con Apache mod_dav_svn?

No. En DreamHost, el protocolo svn:// (el daemon svnserve independiente) y el módulo mod_dav_svn de Apache no son soportados. Conéctate a tu repositorio mediante svn+ssh.

¿Necesito crear un archivo conf/passwd para mi repositorio?

No. Cuando te conectas a través de svn+ssh, la autenticación la gestiona SSH utilizando tus credenciales de shell de DreamHost o llaves de SSH, por lo que no se utiliza el archivo conf/passwd.

¿Pueden varias personas realizar commits en el mismo repositorio?

Sí. Deberás compartir una única cuenta de shell y usar comandos forzados en ~/.ssh/authorized_keys con svnserve --tunnel-user para asignar un usuario de Subversion a cada autor. Cada autor único deberá proporcionarte una llave de SSH para acceder.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?