Breve Tutorial de SVN
Operaciones básicas
Checkout
Descarga una rama del repositorio
- svn co URI directorio-de-destino
- Ejemplos:
- svn co http://webapps.uco.es/svn/ts-uco/trunk tsuco
- svn co http://webapps.uco.es/svn/ts-uco/branches/selector selector
Update
Actualiza el repositorio local
- svn up [directorio]
Add
Añade un archivo local para que forme parte del repositorio. No lo sube al servidor, solo lo marca para añadir.
- svn add --no-ignore [archivos-o-directorios] ...
--no-ignore se usa para que añada archivos binarios, entre otros. También sirve para que vuelva a buscar archivos en un directorio que ya estaba agregado.
Remove
Borra archivos o directorios enteros
- svn rm [archivos-o-directorios] ...
Revert
Lo que hace revert es dejar el directorio o el archivo en el mismo estado en el que estaría en la versión del repositorio en la que estamos trabajando. Útil si hemos editado un archivo y queremos dejarlo como estaba, recuperar un archivo borrado o desmarcar un archivo marcado para añadir. Solo se puede usar antes de hacer commit.
- svn revert archivos-o-directorios ...
Commit
Envía cambios al repositorio
- svn ci [archivos-o-directorios] ...
Operaciones avanzadas
Anular un commit
Si hemos hecho un commit y queremos anular algún cambio (o todos), lo que se hace es descargar parte del commit anterior y volver a subir los cambios en nuevo commit. Realmente no se puede deshacer ningún cambio, pero podemos dejar el estado de un commit igual que el estado de otro anterior. Es lo que se llama merge.
- Ejemplo: Hemos hecho un commit que nos ha devuelto que nuestra revisión es la 76, para anularla haríamos lo siguiente:
- svn merge -c -76
- svn ci -m "Anulado el cambio de la revisión 76"
Crear un tag
Creamos una etiqueta que marca el estado concreto del repositorio en una revisión determinada.
- svn copy URI-ORIGEN URI-DESTINO
- Ejemplo:
Crear un directorio
Creamos un directorio directamente en el repositorio. El motivo puede ser crear una nueva rama de trabajo.
- svn mkdir -m "Comentario" URI
- Ejemplo:
También podríamos crear una nueva rama con copy, para desarrollar otra línea de trabajo y más adelante cambiar trunk por una rama concreta, con la ayuda de merge.