fbpx

Guía rápida de SVN – Referencia

March 2, 2008

Características:

Directory versioning: Subversion sólamente graba el historial de los cambios en los archivos, pero crea un filesystem virtual que graba también los cambios hechos en directorios.

True version history: Subversion permite agregar, copiar, borrar y renombrar archivos y directorios, no como los sitemas CVS que no soportan dichas operaciones.

Atomic commits: Es una colección de modificaciones que permiten prevenir problemas que pueden ocurrir al momento de la sincronización de los archivos.

Versioned metadata: Los archivos y directorios tienen propiedades asociadas a ellos, con versioned metadata se puede controlar estas propiedades como gustes.

Choice of network layers: Subversion se “engancha” a Apache como un modulo. Esto da grandes ventajas, como la posibilidad de usarlo con SSH.

Consistent data handling: Subversion expresa la diferencia entre los archivos usando algoritmos binarios diferenciales, que trabajan identicamente para archivos de texto o binarios.

Hackability: Subversion es extremadamente manipulable por distintas aplicaiones y lenguajes de programación.

Arquitectura:

Componentes

svn: programa cliente (linea de comando)
svnversion: programa que reporta el estado de la copia de subversion
svnlook: herramienta para inspeccionar el repositorio del subversion
svnadmin: herramienta para crear, reparar, etc. el repositorio de subversion
svndumpfilter: herramienta para realizar filtrados en el repositorio de subverion
mod_dav_svn: modulo para apache, que permite acceso remoto
svnserve: deamon invocado por ssh

QuickStart (local)

Para empezar podemos llamar al comando más importante de svn:

Código:
$ svn help
$ svn help (para ver la ayuda de determinado comando)

Para crear un nuevo repositorio:

Código:
$ svnadmin create /path_repositorio
$ ls /path_repositorio
conf/ dav/ db/ format hooks/ locks/ README.txt

(hay que estar seguro de que este directorio se encuentra en el disco local, y no un es un directorio compertido de la red)
Este nuevo directorio contiene una colección de archivos Berkeley DB

El paso siguiente es crear un árbol de archivos y directorios para importar dentro del repositorio (estos deben estar vacios!!!). Dicho árbol debe contener tres directorios principales (top-level).

Código:
/tmp/proyect/branches/
/tmp/proyect/tags/
/tmp/proyect/trunk/

Una ves que se tiene el árbol de archivos y directorios completo, se debe usar el comando svn import, para importar los archivos necesarios para el funcionamiento de svn.

Código:
$ svn import /tmp/proyect file://path_repositorio -m "initial import"

Con esto ya tenemos los archivos necesarios para empezar a trabajar. Para empezar a manipular el repositorio, debemos crear un nuevo “working copy” de los datos:

Código:
$ svn checkout file://path_repositorio/trunk proyect

Ahora tenemos una copia personal de parte del repositorio en el directorio proyect. Ahora puedes trabajar los archivos en tu “working copy”, para luego pasar estos cambios al repositorio.

Código:
> Entra a tu "working copy" y edita los archivos que desees
> Ejecutar svn diff compara tus archivos con los del repositorio.
> Ejecutar svn commit para subir tus archivos al repositorio
> Ejecutar svn update para actualizarte. (este paso también es recomendable ejecutarlo al principio)

Guía de Uso

Lo primero que tenemos que hacer es crear una copia del repositorio en nuestra maquina:

Código:
$ svn checkout http://url_repositorio/trunk/proyecto /directorio_local

Ciclo básico

Actualizarnos:

Código:
$ svn update (actualiza nuestra "working copy")

Hacer cambios:

Código:
$ svn add foo (Archivo, directorio o link simbólico foo para ser agregado al repositorio en el siguiente commit)
$ svn delete foo (Archivo, directorio o link simbólico foo para ser borrado del repositorio en el siguiente commit)
$ svn copy foo bar (Se crea una copia (bar) del archivo foo en el siguiente commit)
$ svn move foo bar (Se crea una copia (bar) del archivo foo, y se borra el archivo foo en el siguiente commit)

Examinar nuestros cambios:

Código:
$ svn status (Devuelve el estado de los archivos, para ver el significado de cada columna devuelta por este comando, ejecutar svn
help status)
$ svn diff (Compara tus cambios con los archivos del repositorio)
$ svn revert foo (Revierte los cambios que hiciste en el archivo foo)

Volver a actualizar:

Código:
$ svn update (actualiza nuestra "working copy" nuevamente, y nos indica (con una c) si hay conflictos con los cambios que hicimos)
$ svn resolved foo (Resuelve los conflictos que hay con el archivo foo)

Subir nuestros cambios

Código:
$ svn commit (Envia todos los cambios de tu "working copy" al repositorio)
$ svn commit --message "mensaje" (Si queremos subir los archivos dejando un comentario de los cambios)

Otras funciones importantes son:

Código:
$ svn log (Muestra todos los mensajes adjuntos a las revisiones)
$ svn cat (Para tomar cualquier revisión y verla en nuestra pantalla)
$ svn list (Muestra los archivos en los directorios de cualquier revisión)
avatar
Gonzalo Escribano

Ver entradas

Most Recent

June 9, 2022

¿Qué son las DAO y cuáles son sus beneficios?

Es común en la historia contemporánea que haya cambios a partir de los avances en el campo de la...

Read More

June 2, 2022

¿Qué son las DeFi y por qué son el futuro de las finanzas?

Es común en la historia contemporánea que haya cambios a partir de los avances en el campo de la...

Read More

May 27, 2022

How to start a successful product build from scratch?

Creating a product from scratch could be a huge challenge. To achieve your business goals it’s important to develop...

Read More