Usando propiedades en Subversion

Una de las características que añadió Subversion frente a CVS es la posibilidad de añadir metadatos a los elementos que son versionados. A estos metadatos se les denomina propiedades, pues son pares clave-valor adjuntos a cada elemento. Estas propiedades pueden tomar el valor que queramos, y también son versionadas.

Sin embargo, en Subversion hay una serie de propiedades que hacen que un archivo sea tratado de alguna manera especial. Una de estas propiedades es svn:keywords. Ésta permite sustituir una serie de palabras clave en un archivo versionado por información dinámica. Para ello es tan simple como definir la propiedad en el archivo, y en éste escribir $key$, lo que hará que el fichero se modifique a algo como $key: valor$
.

Usando las propiedades predefinidas por subversión, podemos fácilmente incluir en un archivo la última fecha de modificación, el autor de ésta, así como otros datos. Por ejemplo, podemos escribir al principio de un archivo de código prueba.c:

// $Id$

Y con el siguiente comando añadir la propiedad:

svn propset svn:keywords “Id” prueba.c

Y al hacer commit de este archivo se aplicarán las sustituciones en él:

// $Id: prueba.c 12 2007-11-01 19:40:16Z penyaskito $

Generalmente, cuando queremos hacer uso de esta característica, lo querremos hacer en todos los archivos de cierto tipo. Para ello, podemos hacer que estas propiedades se añadan por defecto. Esto se logra modificando el archivo de configuración config de subversion (en C:\Documents and Settings\User\Application Data\Subversion en Windows XP, /home/User/.subversion en Linux). Por ejemplo, queremos que todos nuestros archivos de código python tengan la propiedad svn:keywords de modo que se sustituya la revisión de la última modificación, el nombre del archivo, el autor de la última modificación y la fecha. Además, queremos que los retornos de carro se adapten al sistema operativo en el que estamos (propiedad svn:eol-style). Añadiremos la siguiente línea a la sección [auto-props]:

*.py = svn:eol-style=native; svn:keywords=Id Author Date Revision

Con ello, todos los archivos que creemos ahora con extensión .py tendrán estas propiedades.

Más info:
Version Control with Subversion. Chapter 7. Advanced Topics. Properties.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: