Si utilizamos subversion como software de control de versiones, cada vez que creemos un nuevo proyecto rails, habrá una serie de tareas que tendremos que llevar a cabo.
Supongamos que el repositorio está creado y accesible en la URL:
http://svn.misite.com/miproyecto
Lo primero que tendremos que hacer, siguiendo las buenas prácticas del control de versiones con subversion, es crear tres carpetas: trunk, tags y branches.
$ REPO=http://svn.misite.com/miproyecto $ svn mkdir --message="Layout inicial" $REPO/trunk $REPO/tags $REPO/branches Commit de la revisión 1.
Después creamos la aplicación rails como siempre:
$ rails miproyecto
create
create app/controllers
create app/helpers
...Ahora, en lugar de hacer un svn import, lo recomendable es hacer un svn checkout del trunk en el directorio de la aplicación y a continuación añadir la estructura de directorios del proyecto. De esta manera podemos eliminar algunos ficheros del control de versiones antes de hacer el commit:
$ cd miproyecto $ svn checkout $REPO/trunk . Revisión obtenida: 1 $ svn add --force . A lib A lib/tasks ...
Los ficheros de log no necesitaremos que estén bajo el control de versiones:
$ svn revert log/* Se revirtió 'log/development.log' Se revirtió 'log/production.log' Se revirtió 'log/server.log' Se revirtió 'log/test.log' $ svn propset svn:ignore "*.log" log propiedad 'svn:ignore' asignada en 'log'
De la misma manera, como cada desarrollador puede tener un database.yml diferente, será una buena idea eliminarlo del control de versiones:
$ svn revert config/database.yml Se revirtió 'config/database.yml' $ mv config/database.yml config/database.yml.sample $ svn add config/database.yml.sample A config/database.yml.sample $ svn propset svn:ignore "database.yml" config propiedad 'svn:ignore' asignada en 'config' $ cp config/database.yml.sample config/database.yml
Asimismo, el fichero schema.rb, al ser generado dinámicamente por las migraciones, no tiene sentido tampoco que esté bajo el control de versiones:
$ svn propset svn:ignore "schema.rb" db propiedad 'svn:ignore' asignada en 'db'
También interesará eliminar del control de versiones cualquier fichero que se genere en tmp:
$ svn propset svn:ignore "*" tmp propiedad 'svn:ignore' asignada en 'tmp'
Ahora ya podremos hacer nuestro primer commit al repositorio:
$ svn commit -m "Nueva aplicación"
![Validate my RSS feed [Valid RSS]](/wp-content/themes/javiervidal/images/valid-rss.png)