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 una respuesta