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.
Suscribete
RSS posts