Usar SVN en una aplicación web (RoR)

Una vez que tenemos ya SVN instalado y más o menos, sabemos lo que es, podemos poner un caso práctico del uso de este repositorio para desarrollar una aplicación en Ruby on Rails (sería parecido para PHP u otros lenguajes). Al proyecto lo vamos a llamar “txurdi_web“.

Lo primero, crear la estructura básica de un repositorio. En muchos how-tos que he leido, borran luego la estructura, pero yo prefiero mantenerla para futuros proyectos; DRY (don’t repeat yoursef – no te repitas); osea que lo guardaremos en la home.

cd /my/homedir
mkdir repo_vacio
mkdir repo_vacio/branches
mkdir repo_vacio/tags
mkdir repo_vacio/trunk

Una vez que tenemos la estructura, creamos el repositorio y hacemos la importación inicial:

svnadmin create /usr/local/svn/repos
svn import /my/homedir/repo_vacio file:///usr/local/svn/repos/txurdi_web -m "Importación inicial desde repo_vacio"

Aquí es donde ya no necesitamos más la estructura que hemos creado en “/my/homedir/repo_vacio”, y la podemos borrar, pero si vamos a hacer otros proyectos despues, nos puede servir, osea que la voy a dejar.

Vamos a la “home” y descargamos (checkout) el repositorio:

cd /my/homedir
svn checkout file:///usr/local/svn/repos/txurdi_web/trunk txurdi_web

Esto nos creará una carpeta “txurdi_web” donde poder agregar nuestra aplicación web. Si usamos PHP, empezaríamos a crear ahí todos los archivos necesarios, a copiar las librerías etc., pero si usamos RoR: “rails txurdi_web” nos hará todo el trabajo 😉

Cada vez que añadamos archivos, tenemos que acordarnos de subirlos al repositorio (si es que queremos mantenerlos ahí). Como en un principio hemos añadido un montón de archivos y carpetas, vamos a hacerlo:

cd txurdi_web
svn add . --force
svn commit -m "Creación inicial del proyecto"

También hemos hecho el primer commit. Acordaos que commit es como “guardame los cambios que he hecho desde la última vez”.

Y con eso ya sería funcional, pero vamos a mejorarlo un poquillo, porque no necesitamos que guarde en el repositorio los logs, ni algunos otros archivos (aunque eso es un poco para gustos):

svn propset svn:ignore "." log/
svn ci -m "Borrando los ficheros de la carpeta log, e ignorandolos en el futuro."
svn up

NOTA: “ci” es lo mismo que “commit”, pero más cortito.

Algunos, también prefieren quitar los archivos de configuración (como el “database.yml”) que tiene sentido si desarrollas en local y usas configuraciones (usuario-clave etc.) diferentes que en producción.

Para escribir esto me he basado en How To Use Subversion with a Rails Project.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *