Guía rápida de Subversion
¿Qué es Subversion?
Subversion es un sistema de control de versiones, pensado para que:
- varias personas puedan trabajar en un mismo proyecto sin pisarse unos a otros el trabajo
- haya un histórico de revisiones, tanto por seguridad, como por poder recuperar una versión determinada de nuestro código
- gestionar versiones de la aplicacióń, derivaciones y demás
Podríamos decir que las instancias de Subversion son los repositorios. Un repositorio, es un almacén de ficheros, sus versiones, su historial de cambios, y algunas cosas más que ahora no vienen a cuento. Es el que se encarga de coordinar toda la actividad, como veremos ahora mismo.

Trabajando con Subversion
Sin embargo, lo normal no es trabajar en el respositorio, más que nada porque no corresponde a una estructura de directorios común, como las que estamos acostumbrados a ver, sino lo que hacemos es instanciar el repositorio, que suele estar en otra máquina (un servidor). Esto se hace de la siguiente manera:
svn checkout http://www.host.com/nombredelrepositorio
Esto nos copiará los archivos del repositorio, y en cada carpeta añadirá un directorio oculto de nombre .svn en donde guarda los metadatos con el historial de cambios, las distintas versiones y demás.
Una vez tengamos la copia en nuestra máquina, el proceso a seguir para a la hora de realizar modificaciones es muy sencillo:
svn update, para actualizar nuestra versión, por si algún compañero ha introducido algún cambio- modificamos los ficheros que tengamos que modificar, por ejemplo el fichero
carpeta/index.html - cuando hayamos terminado deberíamos volver a hacer un
svn update, por si alguien ha modificado también el mismo fichero que nosotros svn commit -m "esto es lo que he hecho" carpeta/index.htmlpara commitear o subir al respositorio la modificación que hayamos realizado, indicando una breve descripción de la misma
Algunos comandos útiles
svn log fichero.html: para ver el histórico de cambios en el fichero. En dicho histórico se muestra el número de revisión, quién realizó la modificación y el texto que introdujo explicando la modificación (el que hemos puesto antes en el commit junto con el parámetro-msvn export http://www.host.com/nombredelrepositorio: para realizar una imagen del repositorio que no incluya histórico de versiones ni revisión ni nada, es decir, sin los directorios ocultos.svn. Esto es útil, por ejemplo, cuando se quiere subir a producción una aplicación: se debe hacer unexporty no uncheckoutpara evitar copiar los.svn, tanto por motivos de eficiencia como, sobretodo, por seguridad
Enlaces y guías
Con esta información, y algunas nociones más creo que se podría empezar a trabajar con un respositorio sin ningún problema.
Para ampliar conocimientos podéis seguir alguno de estos enlaces:
Actualización
Luis Villa nos cede amablemente un gráfico sobre Subversion, que seguro ayudará a terminar de enteder el concepto. ¡Gracias Luis!
