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 tortoise, por lo que es el que recomiendo.
Hay gran cantidad de documentación acerca de SVN en internet.
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
<Location /svn> DAV svn SVNParentPath /media/almacen/repositorios AuthType Basic AuthName "Subversion Repo" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
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.
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).
sudo svn import /media/almacen/repositorios/mortadelo/ file://localhost/home/pi/repos/helloworld/