diff --git a/software/version-control/svn.md b/software/version-control/svn.md new file mode 100644 index 0000000..4f15eb2 --- /dev/null +++ b/software/version-control/svn.md @@ -0,0 +1,89 @@ +Esto es un tutorial básico para Subversion (SVN) [Pincha aquí para un tutorial más extenso](http://www.hasheado.com/usando-subversion-desde-la-linea-de-comandos.html). + +Subversion (SVN) es una herramienta software para la gestión de ficheros online. Utiliza un servidor centralizado (a veces algunos más de respaldo) al cual se conectan los diversos usuarios del sistema para subir o descargar ficheros. Al igual que otros RCS (Revision Control System, entre los cuales se encuentran SVN, CVS, Hg, Git, Bazaar...) mantiene una base de datos incremental ("repositorio"). Se actualiza con las subidas de ficheros de los usuarios ("commits"), pero las anteriores versiones ("revisiones") se mantienen y son siempre accesibles en caso de necesidad de ir para atrás. El hecho de registrar qué cambios existen entre distintas revisiones de código y la posibilidad de comparación y marcha atrás hacen que los RCS sean componentes fundamentales para la depuración y el desarrollo de software. SVN ofrece además una inferfaz web ("http") para navegar y descargar ficheros, y se puede integrar con TRAC para ofrecer una interfaz web con más funcionalidades. + +## Clientes SVN + +Existen diversos clientes SVN cuya interfaz es gráfica. [Tortoise SVN](http://tortoisesvn.net/downloads) es un cliente SVN gráfico para Windows que agrega funcionalidades al menú que se despliega al pulsar el botón derecho del ratón dentro de una carpeta. Para Linux existe [RabbitVCS](http://www.rabbitvcs.org), muy semejante. [RapidSVN](http://rapidsvn.tigris.org) es un cliente SVN gráfico +multiplataforma (en Ubuntu se instala con un *sudo apt-get install rapidsvn*). + +## Tutorial SVN Ubuntu + +Los siguientes pasos funcionan para una máquina Ubuntu. Sin embargo, el procedimiento (orden de operaciones) es el mismo para cualquier otra Distribución o Sistema Operativo. + +1. Lo primero es intalar un cliente Subversion. Aquí opté por el más básico, el de interfaz de texto. + +```bash +sudo apt-get install subversion  # Posiblemente necesites escribir tu contraseña de sudo +``` + +2. Acto seguido deberéis descargar el repositorio o trozo de repositorio sobre el que vais a trabajar ("check-out"). Por defecto descarga la última revisión ("HEAD"). + +```bash +svn co https://asrob.svn.sourceforge.net/svnroot/asrob  # Cambia la URL (http...) por la del repositorio en cuestión. Posiblemente necesites escribir tu contraseña de usuario del repositorio +``` + +3. A medida que generéis contenido, éste no se "agrega" al repositorio. Al comprobar el "status" del svn tecleando: + +```bash +svn st +``` + +Si has generado ficheros nuevos, la contestación tendrá el siguiente aspecto: +```bash +? tu_fichero_nuevo1.... +? tu_fichero_nuevo2.... +? tu_carpeta_nueva1... +``` + +4. Deberás agregar todo lo nuevo: + +```bash +svn add *  <- Se podría también hacerlo fichero a fichero +``` + +5. Viendo el "status" veréis que: + +```bash +svn st + +A tu_fichero_nuevo1.... +A tu_fichero_nuevo2.... +A tu_carpeta_nueva1... +``` + +Y si hay algún fichero existente modificado, aparecerá como: + +```bash +svn st + +M tu_fichero_modificado1.... +``` + +6. Sólo falta subir todo al repositorio ("commit"). + +```bash +svn ci -m"He mejorado mi nivel de usuario SVN!" +``` + +El cliente de interfaz de texto de SVN exige que se escriba un mensaje +que explique el porqué de los cambios realizados entre "revisión" y +"revisión". + +----- + +Otro comando muy interesante es este, que sirve para ver la diferencia +entre un fichero con una revisión pasada del mismo: + +`$ svn diff -r numero_de_la_revisión_antigua fichero_con_extensión` + +## Configuraciones SVN + +Muchas veces nos interesa ignorar cierto fichero o tipo de fichero. +Podemos añadir la línea: + +```bash +global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo Thumbs.db *.aux *.blg *.out *.lof *.suo build +``` + +al fichero **config**, que en Windows se encuentra en: *C:\\Documents and Settings\\\[username\]\\Application Data\\Subversion*, y en GNU/Linux Ubuntu puede encontrarse en *~/.subversion*.