1 Voto2 Votos3 Votos4 Votos5 Votos (Sin votos)
Loading ... Loading ...

Creando un repositorio con Subversion

Con este “how to for dummies” hoy vamos a crear un repositorio con subversion en un sistema debian (o ubuntu) GNU/Linux.

La necesidad

La idea en la que voy a basar este tutorial es la siguiente:

Tenemos un servidor web con apache. Dentro de un directorio de los que usa apache para sus virtual hosts vamos a tener nuestra versión de producción de la aplicación y dentro de otro vamos a tener una versión de pruebas. Por otro lado, en este mismo servidor vamos a instalar el demonio svnserve, crearemos nuestro repositorio y, finalmente desde nuestro ordenador de casa tendremos nuestro entorno de desarrollo.

La idea es que nosotros desarrollemos en nuestro ordenador y lo subamos al repo. Posteriormente vamos a descargar dichos archivos del repo a nuestro directorio de pruebas sobre el que vamos a realizar todos los test antes de hacer el checkout al directorio de producción.

Instalar subversion

Para instalar svnserve en nuestro servidor nos logueamos en él y vamos a crear un directorio donde estará nuestro repo y luego instalaremos:

munix@pantera:~# mkdir /home/repos

munix@pantera:~# apt-get install subversion

Una vez que termine de instalar lanzaremos el demonio

munix@pantera:~# svnserve -d -r /home/repos

Ahora vamos a crear nuestro repositorio con el comando “svnadmin”. A nuestra app le llamaremos “app_ejemplo”:

munix@pantera:~# svnadmin create /home/repos/app_ejemplo

Y listo! ya tenemos creado nuestro repositorio para nuestra “app_ejemplo”.

Checkout en nuestro equipo

Ahora desde nuestro ordenador elegimos el cliente SVN que más nos guste (a mi me gusta Smart SVN o RapidSVN. Éste último es verdaderamente “rapid” :P ) y realizaremos nuestro primer checkout. Para ello nos solicitará la URI del repo y un directorio en local donde almacenar los archivos.

La URI será algo como lo siguiente: svn+ssh://user@server:/home/repos/app_ejemplo

Donde reemplazaremos “user” por un usuario con privilegios en el servidor y “server” por el nombre del host. Nos solicitará la contraseña de “user” y hará el primer checkout. Como no hemos subido archivos al repo no descargará nada.

Subiendo los primeros archivos al repo

Cuando hicimos el primer checkout con nuestro cliente, nos solicitó un directorio donde almacenar los archivos. Como no tenemos nada en el repo, vamos a subir nuestro primer archivo llamado “index.php”, asumiento que desarrollaremos nuestra app en PHP. Se puede subir cualquier tipo de archivos. Entonces en el directorio donde descargamos el repo creamos nuestro index.php. Ahora vamos al cliente y le damos a “Add” para que incluya el archivo a la cola para subir. Finalmente a ese archivo le damos un “Commit” y se quedará al repo

Descargando nuestro repo en el directorio de pruebas

Supongamos que nuestra url de pruebas es http://test.dominio.com y que el subdominio “test” en nuestro server corresponde a /var/www/sites/test/

La idea es, como dije inicialmente, que desarrollemos en local, subamos al repo y luego descarguemos el repo en el directorio de pruebas antes de subir a nuestro entorno de producción.

Para descargar por primera vez el repo en el directorio de test tendremos que hacer un checkout (recordemos que a pesar de que apache y subversion están en el mismo equipo, es necesario descargar el repo al directorio de apache). Para esto hacemos algo como lo siguiente:

munix@pantera:~# cd /var/www/sites/test/

munix@pantera:/var/www/sites/test# svn checkout file:///home/repos/app_ejemplo/

Con esto ya tendremos descargado el repo y todo lo que hayamos subido desde nuestro equipo en el directorio de test. Para el de producción es igual pero cambiando el directorio.

Como dije antes, el paso anterior sólo se hace la primera vez. Ahora cada vez que queramos descargar los archivos o cambios que hicimos previamente en nuestro equipo, deberemos hacer un “Update”. Para esto, subimos o cambiamos nuestros archivos desde nuestro equipo local, los subimos al repo y desde el servidor hacemos:

munix@pantera:~# svn up /var/www/sites/test

Simplificando el Update

Si la ruta a nuestro directorio web es muy larga y queremos ahorrar un poco de tiempo en los updates, crearemos un enlace desde nuestro directorio home al directorio web de la siguiente manera:

munix@pantera:~# ln -s /var/www/sites/test test

Entonces ahora simplemente cada vez que hagamos un update, tendremos que escribir únicamente:

munix@pantera:~# svn up test

Al ser test un enlace a nuestro directorio web, el resultado será el mismo :-)

Y con esto hemos terminado este mini how-to. Si quieres aprender un poco más acerca de todo el abanico de posibilidades que te ofrece subversion, puedes visitar este enlace.

Entradas relacionadas:

  1. CakePHP en Ubuntu Ya que estoy por la labor de documentar un...
  2. Exportar llaves SHH Muchas veces nos encontramos con la necesidad de trabajar...

Related posts brought to you by Yet Another Related Posts Plugin.

Comentarios (1)

links for 2010-05-27Mayo 28th, 2010 at 7:55 am Reply to this comment

[...] » Creando un repositorio con Subversion » El blog de Munix (tags: svn) [...]

Déjame un comentario

Intenta ser respetuoso al escribir