
Alguna vez se emocionaron por realizar demasiados cambios a la vez y acabaron “estropeando” su proyecto… y no solo me refiero a desarrollo de software, ¿Qué tal la tesis?…
A mi me sucedió el año pasado, y fue precisamente mientras buscaba en una serie de carpetas marcadas como “octubre2008″, “noviembre2008″, “diciembre2008″ etc una versión lo más coherente posible de mi tesis… que supe que tenía que aprender a usar alguna herramienta que me permitiera regarla con confianza en mis proyectos… y que cuando decidiera, pudiera retomar alguna idea de versiones anteriores de los archivos, sin arrepentimientos ni sentimientos encontrados.
Subversion nos permite hacer esto y mucho más, en este post les propongo sencillos tips para que puedan configurar su repo en 5 minutos y se ahorren muchos dolores de cabeza
.
Subversión viene instalado Mac OS X Leopard y en Debian Linux… si la terminal no reconoce el comando “svn” les recomiendo lo bajen desde la página del autor.
Una de las ventajas que le veo a Subversion frente a Concurrent Version System (CVS), es que solo existe una versión para todo el repositorio, es decir si tengo n archivos en mi repositorio, hago x número de cambios en el (add, delete, actualizo archivos, etc.) y posteriormente actualizo el repo (mediante el commando commit del cual hablaremos más adelante) la versión del mismo aumentará en 1, es decir:
versióndelrepo++;
No como en CVS donde se mantiene un “contador” por cada archivo y sinceramente se me hace un relajo administrar eso…
Pero bueno, esto tendrá sentido para ustedes una vez que hayan trabajado un rato con Subversion.
Paso 1: Creación del repositorio
Nuestro repo se llamará:
LaTesisImposible
Y lo guardaremos en:
/Users/dario/Documents/subversionRepos
Para esto utilizaremos los siguiente comandos desde la consola:
mkdir /Users/dario/Documents/subversionRepos
svnadmin create /Users/dario/Documents/subversionRepos/LaTesisImposible
Paso 2: Configuración del repositorio (intro):
Listo! si la ruta es válida se generará nuestro repositorio, si le damos un “ls” a la carpeta LaTesisImposible deben de aparecer las siguientes subcarpetas:
README.txt dav format locks conf db hooks
El README solamente nos notifica que el directorio es un repositorio Subversion, si lo quieren checar denle un:
nano README.txt
La carpeta hooks contiene “scripts” para asegurar que básicamente no la estamos regando… por ejemplo, hay un script llamado pre-commit.tmp donde Subversion checa que siempre que subamos cambios al repo, pongamos un comentario (ahora les explico como hacerlo), y que si el mensaje es NULL, nos mande un error, también comprueba que tenemos permisos para actualizar el repo.
y ahora es cuando entra la importancia de la carpeta conf…
Si checamos los archivos dentro de esa carpeta encontraremos lo siguiente:
moebius1:conf dario$ ls authz passwd svnserve.conf
Por lo que es obvio que esta carpeta es el “cadenero a la puerta del bar”.
De una vez les paso la liga al libro “oficial” de Subversion, donde se detalla como establecer permisos de lectura/escritura y todo aquello.
Paso 3: Sincronizar nuestra carpeta de proyecto con el repositorio
Tenemos que movernos a donde queremos que se genere nuestra carpeta de trabajo, por ejemplo, les propongo esta ruta:
cd /Users/dario/Documents/Universidad/9noSemestre/
dentro de esta carpeta ejecutamos:
svn co file:///Users/dario/Documents/subversionRepos/LaTesisImposible
Lo que hara que dentro de 9noSemetre se genere una carpeta llamada LaTesisImposible la cual ya está sincronizada con el repo.
Paso 4: Generar archivos en nuestra carpeta de trabajo
Bueno, pues a trabajar!! yo generé 2 archivos:
miTesis.txt
miBibliografia.txt
//(recuerden que a las compus aún no le gustan los acentos en los nombres de archivos)
Obviamente dentro de la carpeta sincronizada (no en el repo).
Paso 5: Añadir archivos al repo.
svn add miTesis.txt miBibliografia.txt (añade solo esos 2 archivos)
ó
svn add *.txt (añade todos los archivos con extensión txt)
ó
svn add *.* (añade todos los archivos)
Paso 6: Subir los cambios en el repo.
svn commit -m "Añadidos los archivos miTesis.txt y miBibliografia.txt, espero acabar antes de Diciembre"
la opción -m nos permite agregar un mensaje al commit, esto es básico para saber en términos generales lo que vamos cambiando de versión a versión, esto nos permitirá controlar más nuestro desarrollo.
si todo salió bien deben de ver lo siguiente en la Terminal:
Adding miBibliografia.txt Adding miTesis.txt Transmitting file data . Committed revision 1.
Listo!!
Tips:
Introduzcan en la Terminal:
svn help
para ver todos los argumentos disponibles, junto con el libro de subversion pueden crear scripts muy interesantes!!
Hey!! una recomendación, utilicen estos comandos para hacer archivos, borrar archivos dentro de las carpetas de trabajo porque de otra manera tendrán que hacer todo dos veces, por ejemplo:
Si quiero generar una carpeta que este bajo control de versión en una línea puedo hacer lo siguiente:
svn mkdir subCarpetaDeLaTesisImposible
esto hará dos cosas:
- Creará la carpeta.
- La agregará al repo, como si le diera un add.
De otra manera tendría que hacer esto:
mkdir subCarpetaDeLaTesisImposible
svn add subCarpetaDeLaTesisImposible
¡Espero que les haya servido este post como introducción a Subversion!








