Cómo instalar el servidor de subversion

8

Me gustaría instalar un servidor Subversion en mi máquina Ubuntu.
¿Qué paquetes necesito? ¿Cómo creo un repositorio y configuro un nuevo usuario?

Benjamín
fuente
Dependiendo de sus necesidades, podría ser mejor con un SCM distribuido como Bazaar (bzr), que es fácil de aprender desde Subversion, pero que no necesita un servidor en ejecución. Esto es genial si está trabajando solo y solo necesita un poco de registro y red de seguridad. Y solo tengo que mencionar git, que es la herramienta más poderosa que existe, en mi humilde opinión.
Martin Ueding el
sudo apt-get install subversion
AMIC MING

Respuestas:

10

Hay muchas configuraciones para svn, aquí hay algunas instrucciones breves para obtener un repositorio svn básico disponible a través de http.

  1. Instalar paquetes requeridos: apt-get install subversion apache2 libapache2-svn
  2. Crear una estructura de directorio: mkdir -p /var/svn/repos/
  3. Crea un repositorio:
    • cd /var/svn/repos/
    • svnadmin create --fs-type fsfs <your-repository>
  4. Ahora cree su Project-Struckture para importar en el repositorio:
    • mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches
  5. Importe el proyecto al repositorio:
    • svn import /tmp/myproject file:///var/svn/repos/<your-repository> -m "initial import"
  6. Hazlo accesible a través de http:
    • cd /etc/apache2/sites-available
    • touch subversion.conf
    • vim subversion.conf

Ahora edite el archivo vacío con esta configuración:

NameVirtualHost *:80

<VirtualHost *:80>   
  <Location /svn>
      ErrorDocument 404 default
      DAV svn
      SVNParentPath /var/svn/repos
      SVNListParentPath off
      Require valid-user
      AuthType Basic
      AuthName "subversion access"
      AuthUserFile /var/svn/.htpasswd
      AuthzSVNAccessFile /var/svn/authz 
  </Location>
</VirtualHost>
  • habilitar el módulo dav_svn para apache: a2enmod dav_svn
  • habilite el módulo authz_svn para apache: a2enmod authz_svn
  • habilitar la configuración de VHost: a2ensite subversion.conf
  • ahora reinicie el servidor web: /etc/init.d/apache2 restart
  • Crea un htpasswd: htpasswd -c /var/svn/.htpasswd user
  • Cree el archivo de control de acceso para el repositorio: touch /var/svn/authz
  • edite el archivo authz vacío: vim /var/svn/authz
  • Otorgue derechos de lectura / escritura para el usuario:

[su-repositorio: /]

usuario = rw

Intentemos verificar el repositorio sobre http: svn checkout http://your-server/svn/your-repository

schneehase
fuente
1
No puedo hacer la edición ya que los cambios son demasiado pequeños, pero ¿podría arreglar la última línea para decir checkouten lugar de ceckout?
nanofarad
No puedo encontrar este paquete libapache2-svn. Error: #Leyendo información del estado ... Hecho E: No se puede encontrar el paquete libapache2-svn Sistema: ubuntu 12.04 32bit (todos los repositorios están habilitados)
shantanu
2
También debe habilitar el módulo authz_svn, de lo contrario obtendrá Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration. Puedes usar el comando a2enmod authz_svnpara hacer esto.
mrswadge
2

Comienza a leer el manual . Actualmente estoy haciendo lo mismo.

Una vez que haya configurado un repositorio con svnadmin create /path/to/repo, puede utilizarlo svnserve --root /path/to/repopara que esté disponible en svn://yourhost/. Abra el puerto TCP 3690 si es necesario.

Es posible usar SVN sobre HTTP, pero todavía no he leído esa parte: o

Lekensteyn
fuente
2

Necesitarás el subversionpaquete.

sudo apt-get update
sudo apt-get install subversion

Este paquete contiene el cliente, herramientas para crear un repositorio Subversion y el servidor.

Octavian A. Damiean
fuente
0

Para instalar subversion, abra una terminal y ejecute el siguiente comando:

sudo apt-get install subversion libapache2-svn

Vamos a crear el repositorio de subversión en / svn, aunque debe elegir una ubicación que tenga una buena cantidad de espacio.

sudo svnadmin create /svn

Cambie el propietario de este repositorio a usuario de Apache.

sudo chown -R www-data:www-data /svn

Cree un repositorio de subversión básico para su uso posterior (para Producción / Control de calidad / Pruebas / Enunciado ... / etc.)

sudo mkdir -p /tmp/myproject/trunk /tmp/myproject/tags /tmp/myproject/branches

Importe esos directorios a nuestro repositorio

sudo svn import /tmp/myproject file:///svn -m "initial import"

A continuación, necesitaremos editar el archivo de configuración para el módulo subversion webdav. Puede usar un editor diferente si lo desea.

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

El elemento Ubicación en el archivo de configuración dicta el directorio raíz desde donde se podrá acceder a la subversión, por ejemplo: http://www.server.com/svn

<Location /svn>

La línea DAV necesita ser descomentada para habilitar el módulo dav

# Uncomment this to enable the repository,
DAV svn

La línea SVNPath debe establecerse en el mismo lugar donde creó el repositorio con el comando svnadmin.

# Set this to the path to your repository
SVNPath /svn

La siguiente sección le permitirá activar la autenticación. Esto es solo autenticación básica, así que no lo considere extremadamente seguro. El archivo de contraseña se ubicará donde la configuración AuthUserFile lo establece en ... probablemente lo mejor sea dejarlo en el valor predeterminado.

# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd

Para crear un usuario en el repositorio, use el siguiente comando:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Tenga en cuenta que solo debe usar la opción -c la PRIMERA vez que cree un usuario. Después de eso, solo querrá usar la opción -m, que especifica el cifrado MD5 de la contraseña, pero no recrea el archivo.

Ejemplo:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd geek
New password:
Re-type new password:
Adding password for user geek

Reinicie apache ejecutando el siguiente comando:

sudo /etc/init.d/apache2 restart

Gracias: http://www.howtogeek.com/howto/ubuntu/install-subversion-with-web-access-on-ubuntu/

El Sr. Black
fuente