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.
Redifusión RSS de los comentarios de la entrada. URL para Trackback
RSS posts