====== Subversion ======
Subversion es un software cliente-servidor de control de versiones, muy útil de cara al desarrollo de software, aunque también puede utilizarse para el desarrollo de otro tipo de obras.
La idea es la de guardar diferentes versiones de una obra de forma sencilla y ordenada, realizar modificaciones, distinguir versiones finales de las que están en desarrollo, etc.
Al final, el seguir las recomendaciones de buenas prácticas por parte de los editores de la obra, lo que va a definir un sistema de control de versiones bien organizado.
Existen otros sistemas de control de versiones más modernos, como Git Hub, por ejemplo, aunque éste está más enfocado a la creación colaborativa de grandes proyectos, mientras que Subversion (SVN) es más indicado para proyectos de menor tamaño, por su mayor facilidad de administración y uso.
Para trabajar desde windows con un servidor SVN, existen varios clientes, aunque uno de los más simples de usar es [[http://tortoisesvn.net/downloads.html|tortoise]], por lo que es el que recomiendo.
Hay gran cantidad de documentación acerca de SVN en internet.
===== Instalación =====
Para instalar subversion sudo apt-get install subversion
Se recomienda crear un directorio para lamacenar los diferentes proyectos, por ejemplo sudo mkdir /media/almacen/repositorios
Para configurar el acceso remoto, debemos tener instalado el módulo de SVN para apache sudo apt-get install apache2 libapache2-mod-svn
Y editamos el archivo dav_svn.conf sudo nano /etc/apache2/mods-available/dav_svn.conf
Y añadimos en la parte inferior del archivo el siguiente código
DAV svn
SVNParentPath /media/almacen/repositorios
AuthType Basic
AuthName "Subversion Repo"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
Se puede ver comentado en el mismo archivo las instrucciones para rellenarlo correctamente.
A continuación reiniciamos apache sudo /etc/init.d/apache2 restart y damos permisos sudo chown -R www-data:www-data /media/almacen/repositorios
A continuación creamos un usuario para acceder a SVN sudo htpasswd -c /etc/apache2/dav_svn.passwd jeremy Recuerda ¡usa el parámetro -c sólo al crear un usuario por primera vez! Si se vuelve a usar al crear otro usuario ¡Se borrarán los existentes! El parámetro -c se utiliza para crear al primer usuario.
===== Comandos útiles para la administración de SVN =====
* **Creación de un proyecto** svnadmin create /media/almacen/repositorios/mortadelo Se crea automáticamente un directorio para guardar el proyecto (son necesarios permisos de lectura/escritura en el directorio).
* **Importar un archivo a un repositorio** sudo svn import /media/almacen/repositorios/mortadelo/ file://localhost/home/pi/repos/helloworld/