Subversion para no desarrolladores

Esta sección es una introducción a Subversion para no desarrolladores. Cuando tengas una idea aproximada de como funciona, te invito a que leas el documento completo.

¿Qué es?

  • Subversion es un software destinado a facilitar el trabajo en equipo sobre un conjunto de ficheros.

  • Cada usuario puede participar desde un ordenador conectado a Internet o una red local.

  • Los usuarios se conectan al servidor para intercambiar modificaciones.

  • El servidor recuerda todos los cambios realizados sobre un fichero y permite recuperar versiones anteriores.

  • El acceso al servidor esta protegido mediante contraseñas.

  • Es posible realizar copias de seguridad de toda la información.

  • Subversion es gratuito.

¿Como funciona?

  • Subversion se compone de un programa "servidor" y otro "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 al 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).

¿Qué requiere?

  • Hay versiones para Windows y cualquier sistema basado en Unix.

  • Puede instalarse como servidor independiente o como módulo de Apache.

  • Consume pocos recursos.

  • Una instalación básica solo requiere conocimientos a nivel de usuario del sistema operativo.

Un ejemplo de sesión de trabajo

Este es un ejemplo de trabajo con Subversion usando la línea de comando:

# Descargo (checkout) el proyecto del servidor usando 
# la URL que me dió el administrador del repositorio.
svn checkout http://servidorDeSVN/repos/miProyecto

# Ahora tengo una copia del proyecto en mi ordenador y puedo trabajar en ella.
# Si quiero modificar ficheros no tengo más que editarlos.

# Si por ejemplo decido añadir ficheros o directorios hago esto:
svn add fichero1 fichero2 directorio3

# Si quisiera eliminar, haría esto otro:
svn delete ficheroA directorioB

# En cualquier momento puedo revisar los cambios que he hecho en mi copia local.
svn status

# Al terminar, envío mis cambios al servidor informando de lo que he hecho.
svn commit –m "he modificado tal y cual, añadido tal y borrado cual"

# Actualizo mi copia local con los cambios subidos por otros usuarios.
svn update

Subversion proporciona integración con entornos de desarrollo como Eclipse, JBuilder, u otros. Normalmente ejecutaremos las mismas operaciones que acabamos de ver usando los menús de un interfaz gráfico.