Inicio > Ingenieria del Software > Subversion- Instalación en Linux

Subversion- Instalación en Linux

Robert Loarte.

Subversión es un sistema de control de versiones, fundada en el 2000 por CollabNet, Inc., el proyecto Subversion y software a tenido un éxito increíble en la última década. Subversion ha gozado y sigue gozando de amplia adopcion, tanto en el campo de código abierto y en el mundo empresarial.

Una característica de Subversión es que, a diferencia de CVS, los archivos mencionados no tiene cada uno  un número de revisión independiente, en cambio,  todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en un instante determinado.

Como Funciona Subversion.

  • Subversion se compone de un programa “servidor” y “cliente”.
  • El servidor contiene una copia maestra de la información a compartir.
  • Los usuarios usan el cliente para descargar la información existente en el servidor.
  • Cuando un usuario realiza un cambio, lo envía la servidor para que otros usuarios puedan descargarlo
  • El servidor guarda los ficheros dentro de una base de datos (no son visibles en el sistema de ficheros)
  • Al servidor online se lo llama repositorio, A cada cambio que recibe el repositorio se lo llama revision
  • Para windows el mejor cliente es TortoiseSvn
  • Para GNU/Linux, basta subversion, la versión para linea de comandos, o RapidSvn, una versión gráfica para entornos GTk

Ventajas y desventajas de subversion.

Ventajas.

  • Se sigue la historia de los archivos y directorios a través de copias y renombrados.
  • Las modificaciones (incluyendo cambios a varios archivos) son atómicas.
  • Se envían sólo las diferencias en ambas direcciones (en CVS siempre se envían al servidor archivos completos).
  • Permite selectivamente el bloqueo de archivos. Se usa en archivos binarios que, al no poder fusionarse fácilmente, conviene que no sean editados por más de una persona a la vez.
  • Cuando se usa integrado a Apache permite utilizar todas las opciones que este servidor provee a la hora de autentificar archivos (SQL, LDAP, PAM).
  • Consume pocos recursos.

Desventajas.

  • La principal desventaja de Subversion es que es más lento que CVS y que una verificación local de Subversion requiere mayor espacio en disco.
  • El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una operación de copia y una de borrado.
  • El manejo de archivos binarios los trata internamente como si fuera de texto no como de Subversion.

Como Instalar Subversion.

Instalación de Subversion en Linux.

  1. Instalar un servidor LAMPP.
sudo apt-get apache2 php5-mysql libapache2-mod-php5 mysql-server

2.  Instalar Subversion.

sudo apt-get install subversion libapache2-svn.

3.  Crear un Repositorio

sudo svnadmin create /svn

4.  Configurar el módulo webdav

Editar el archivo de configuración del módulo webdav del apache. Utilize su editor favorito, en este caso se utiliza nano.

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

El archivo debería quedar como sigue:

<Location /svn>
DAV svn
SVNPath /svn
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
</Location>

5. Crear un usuario en SVN

Para crear un usuario en el reposotorio utilize el siguiente comando:

sudo htpasswd -cm /etc/apache2/dav_svn.passwd.

6. Reiniciar Apache.

sudo /etc/init.d/apache2 restart.

Ahora puede apuntar con el browser a http://www.server/svn, debería ver que el depósito está habilitado para el acceso de lectura anónima, pero se comprometen que el acceso exige un nombre de usuario.

Como crear repositorios.

Se localiza el fichero dav_svn.conf. Lo vamos a editar para hacer alguna modificaciones para crear un repositorio llamado pruebas.

Localizamos las lines donde se define el repositorio por defecto SVN.

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
#<Location /svn> %modificamos la linea y cambiamos el nombre de repositorio pruebas.

——————————————-

# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
<Location /pruebas>

———————————————————————-

Tal y como indica, descomentamos para activar el repositorio:

# Uncomment this to enable the repository,
# DAV svn

Asi

# Uncomment this to enable the repository,
#DAV svn

Modificamos también las líneas:

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

Para establecer el path del repositorio:

# Set this to the path to your repository
SVNPath /var/lib/svn/pruebas

Inicialmente comentaremos las siguientes líneas para desactivar la seguridad:

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

No olvidemos descomentar la última línea. Ya que es donde termina el repositorio.

</Location>

Como somos muy ordenados, queremos crear un repositorio por cada proyecto. Así será más sencillo gestionar las políticas de seguridad. Todos estos repositorios se van a crear dentro del directorio /var/lib/svn por lo que tenemos que crearlo previamente.

$ sudo mkdir /var/lib/svn

Ahora tenemos que crear el repositorio en sí:

$ sudo svnadmin create /var/lib/svn/pruebas

Aunque no es estrictamente necesario, vamos a crear los directorio trunk, tags y branches que servirán para almacenar el código actual, los tag y las posibles ramas que pueda tener nuestro proyecto:

$ sudo svn mkdir --message="Setting up the directories..." \
  file:///var/lib/svn/pruebas/trunk \
  file:///var/lib/svn/pruebas/tags \
  file:///var/lib/svn/pruebas/branches

Dado que vamos a acceder a este repositorio a través de apache, tendremos que asignarle el propietario adecuado:

$ sudo chown www-data:www-data  /var/lib/svn/pruebas -R

Sólo nos queda reiniciar el servidor Apache para que vuelva a leer la configuración actualizada:

$ sudo /etc/init.d/apache2 restart.

Si abres un navegador y accedes a http://localhost/pruebas podrás ver el contenido del repositorio pruebas.

Como crear Usuarios_Permiso

Usuario:

  • Para crear el primer usuario, ejecute (cambie <usuario> por el nombre de usuario a crear) :sudo htpasswd -c /etc/subversion/passwd <usuario>
  • A continuacion suministre la clave asignada al usuario
  • Para crear el segundo utilice el mismo comando pero sin la opcion -c
    sudo htpasswd /etc/subversion/passwd <usuario>.

Permisos.

Para añadir los usuarios con permisos de acceso a nuestro repositorio los añadimos al grupo svn de la siguiente forma:

usermod -G svn juan

Para que el subversion pueda gestionar las credenciales de los usuarios creamos el fichero /etc/apache2/dav_svn.passwd que anteriormente habilitamos en el fichero de configuración del repositorio dav_svn.conf (nos pedirá introducir la contraseña para el usuario):

  1. htpasswd -c /etc/apache2/dav_svn.passwd juan
  2. New password:
  3. Re-type new password:
  4. Adding password for user juan

Principales comandos.

  • svn import
  • trunk linea pricipal de desarrollo
  • branches. directorio para albergar ramas alternativas de desarrollo
  • tags directorio con versiones etiquetadas.
  • checkout
  • svn update actualiza tu copia local
  • svn add
  • svn delete
  • svn copy
  • svn move
  • svn commit publicar los cambi0s en el repositorio.

Fuente importante

 

 

  1. septiembre 19, 2012 a las 8:35 am

    This design is wicked! You obviously know how to keep a reader amused.
    Between your wit and your videos, I was almost moved
    to start my own blog (well, almost…HaHa!

    ) Great job. I really loved what you had to say, and more than
    that, how you presented it. Too cool!

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: