Skip to content

Commit

Permalink
Add svn.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jgvictores authored May 13, 2018
1 parent 381c4da commit 8172dde
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions software/version-control/svn.md
Original file line number Diff line number Diff line change
@@ -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*.

0 comments on commit 8172dde

Please sign in to comment.