Leandro Lucarella <llucare@fi.uba.ar>
$Id: faq-subversion.lyx 37 2003-08-06 02:37:18Z llucare $
Este documento pretende explicar brevemente el uso básico del subversion http://subversion.tigris.org/ (o svn). Como nació en el LUGFI http://www.fi.uba.ar/lug/, la mayoría de los ejemplos y explicaciones están orientadas al uso de su repositorio. De todas maneras creo que el documento es bastante general como para servirle a otra gente también.
Ahora asumo que ya tenés el svn andando también. Si no es el caso y usas Debian (unstable), hacé un:
Yo diría que pruebes con el código fuente. O probá de apuntar tu /etc/apt/sources.list al unstable y fijate si no te tiene que actualizar media distribución para bajar el paquete. Es un paquete que (creo que) no tiene muchas dependencias, así que con un poco de suerte...
Ahora podés hacer un checkout del repositorio, solamente escribí esto:
Esto te va a crear un subdirectorio lugfi-www después de preguntarte tu usuario y password. En ese subdirectorio está todos los archivos de sitio.
Entrá al subdirectorio lugfi-www y editalo con tu editor favorito! Hacé de cuenta que estás trabajando en un subdirectorio cualquiera. Modificá todos los archivos que quieras, el repositorio no se va a modificar hasta que hagas un commit.
Con el comando commit del svn se suben los cambios al repositorio. Es recomendado hacer un update antes:
[...]
At revision 30.
.../lugfi-www/$ svn ci [archivos]
A archivo
M archivo
[...]
El comando update se encarga de poner al día nuestra copia local del repositorio. Si alguien hizo algún cambio después de que lo hayamos bajado, este comando nos lo actualiza de una forma barata, ya que sólo baja los cambios (no todo el repositorio de nuevo).
Para tener un pantallazo, el comando status es tu mejor amigo:
Es probable que hayas cortado un comando del svn con Ctrl-C o algo así. Probá de hacer un:
Para agregar archivos o directorios (de forma recursiva por defecto) está el comando add:
A miarchivo
A midirectorio
D miarchivo
A+ milindoarchivo
$ svn rm otroarchivo
D otroarchivo
Si todavía no hiciste un commit, es fácil, simplemente escribí:
Son keywords, es decir, palabras clave que el svn puede traducir a propiedades del documento. En realidad van con mayúscula la primera letra pero lo puse a propósito mal para que en el título no lo expanda. A continuación las escribo bien así son expandidas y ven el significado de cada una:
$Date: 2003-08-05 23:37:18 -0300 (Tue, 05 Aug 2003) $
$Rev: 37 $
$URL: http://svn.llucax.hn.org:81/svn/lugfi/tronco/proyectos/faq_website.lyx $
$Author: llucare $
El svn por defecto no expande nada para evitar problemas indeseables, tengan en cuenta que en especial al trabajar con PHP (o Perl) se usa mucho el signo $ y si usamos una variable $Id y luego otra es probable que lo expanda. Es por esto que recomiendo altamente no utilizar nombres de variable en PHP que empiecen con Mayúsculas (para evitar problemas con futuros keywords también). En fin, en caso de querer que expanda los keywords hay que decirlo explícitamente, seteando la propiedad especial (los archivos además del contenido pueden tener propiedades arbitrarias) llamada svn:keywords:
Es importante que no expandan keywords en archivos binarios, porque pueden tener la mala suerte de que les parta el archivo al medio al expandir algo no deseado.
No que conozca, pero para simplificar un poco las cosas (y considerando que siempre expando los mismos keywords) me hice dos micro-scripts:
#!/bin/sh
svn ps svn:keywords ``Id Date Author Rev URL'' ``$@''
#!/bin/sh
svn add ``$@''
svn ps svn:keywords ``Id Date Author Rev URL'' ``$@''