domingo, 22 de agosto de 2010

SVN: Armando Releases de nuestro Proyecto

El procedimiento es muy sencillo, vamos a suponer que tenemos un proyecto llamado PruebaMaven, ubicado en un repositorio google code llamado RepositorioPrueba.

El proyecto PruebaMaven se localiza dentro del directorio trunk del repositorio, tal como se muestra en la imagen siguiente.



Bien, manos a la obra:

Una manera cómoda de trabajar es efectuando un branch del proyecto. Un branch del proyecto no es más que una ramificación del proyecto bajo desarrollo (ubicado en trunk) para poder trabajarlo de manera independiente. Para efectuar el procedimiento, buscamos copiar el PruebaMaven actual que está en trunk, y ubicarlo dentro del directorio branches del repositorio. Abrimos una consola y escribimos:

svn copy -m "Branch 1.0" https://repositorioprueba.googlecode.com/svn/trunk https://repositorioprueba.googlecode.com/svn/branches/Br-1.0

De esta manera logramos el objetivo propuesto. El parámetro "m" provee una descripción a cada archivo copiado al branch, el cual pasamos a llamaro como "Br-1.0".

Seguidamente, para poder trabajar de manera independiente con el nuevo branch que hemos creado, es decir, el "Br-1.0", disponemos dos maneras:

Importar este directorio del repositorio a nuestro disco local en una carpeta distinta al PruebaMaven (el cual proviene de Trunk). Bastaría efectuar el comando checkout:

svn co https://repositorioprueba.googlecode.com/svn/branches/Br-1.0 PruebaMavenBr-1.0

De esta manera crearemos una carpeta llamada "PruebaMavenBr-1.0" en nuestro disco local con el contenido del branch mencionado.

Intercambiar el directorio actual de trabajo por el del branch. De esta manera ganamos en eficiencia dado que solo necesitaremos bajar las diferencias que existan, muy útil cuando el proyecto es grande. Para lograrlo, efectuamos el siguiente comando:

svn switch https://repositorioprueba.googlecode.com/svn/branches/Br-1.0

De esta manera cuando realizamos commit sobre nuestros cambios, sólo se verá afectada la copia branch "Br-1.0" y no la que existe en trunk.

Una vez que hayamos efectuado todos los cambios necesarios del branch, se debería volver a intercambiar al proyecto trunk, con el siguiente comando:

svn switch https://repositorioprueba.googlecode.com/svn/trunk

Para etiquetar nuestro release, y de esta manera constituir una versión como tal para su posterior distribución, basta efectuar el siguiente comando:

svn copy -m "Tag release 1.0" https://repositorioprueba.googlecode.com /svn/branches/Br-1.0 https://repositorioprueba.googlecode.com /svn/tags/Rel-1.0

De esta manera hemos definido un release "1.0" de nuestro proyecto, listo para su distribución.

Finalmente, y para que quede agradable para la distribución del release, necesitamos exportar el código etiquetado pero sin incluir los metadatos SVN. Lo logramos con el siguiente comando:

svn export https://repositorioprueba.googlecode.com/svn/tags/Rel-1.0 PruebaMaven-1.0

De esta manera, en nuestro directorio local, se creará una carpeta con el nombre de "PruebaMaven-1.0" y dentro de ella el contenido propiamente dicho sin los metadatos SVN, listo para su distribución masiva.

Muy bien internautas, hemos conseguido el propósito, el release anhelado. ¿Fácil?

sábado, 21 de agosto de 2010

Bueno, este es mi blog para cualquier cosa que desee poner, de lo que sea (realmente!): facu, jodas, amigos, películas, computación, etc etc etc!

El título es literal, me tomo un café y empiezo a escribir...