Archive for the ‘Subversion’ Category

Comprendiendo la necesidad del versionamiento (2)

miércoles, marzo 27th, 2013

El proceso

Inicialmente existe uno o varios requerimientos que deben ser agrupados por el usuario o jefe de un proyecto (quien es el encargado de dar la prioridad a las necesidades del usuario). Ahí define la funcionalidad que uno o un grupo de requerimientos genera, y le encarga la tarea a un desarrollador.

El desarrollador debiese descargar la ultima version de desarrollo, generar los cambios de uno o más archivos, y comprometer al repositorio de codigo con alguna forma identificadora de la funcionalidad.

sc0000

Con esto el desarrollador hace su liberación.

La persona encargada de QA debe descargar un copia de la ultima version de produccion, compila, ejecuta, hace las pruebas y da su veredicto. si la aprueba, se genera una version QA con la funcionalidad, sino, se devuelve al desarrollador.

sc0002

Finalmente el encargado de generar el release, segun la planificcion o roadmap de la aplicacion se da el momento de fusionar todas las funcionalidades liberadas y que existan en QA ya probadas y liberadas. Esta construccion debiese ser limpia debido a que las funcionalidades no son dependientes unas de otras, eso es la idea que se transmitió al principio.

Con lo cual se tiene mas o menos lo siguiente

sc0003

Comprendiendo la necesidad del versionamiento

miércoles, marzo 27th, 2013

En muchos momentos he tenido que hacer entender a gente no informática que existe la necesidad de versionar lo que hacemos como proyecto debido a que de un punto al siguiente existen avances, y por ende modificaciones al original. Por lo tanto un ‘artefacto’ evoluciona a través del tiempo para perfeccionarse y llegar a ver la luz como el requerimiento que fue solicitado.

El problema me ocurre también con gente que si es informática, o sea, tampoco entienden porque existe esta necesidad y ven que es sólo una pérdida de tiempo. Aquí va una manito…

La situación

En general el desarrollador crea una version un archivo de código fuente de desarrollo, que luego debe ser probada por otros para asegurar la calidad (QA, de Quality Assurance) y ellos a su vez dan el paso a producción, algo más o menos así(perdon el dibujo a mano, pero carezco de tiempo, y me es más rápido así):

IMG_0009

Ahora bien, existen distintos tipos de modificaciones dentro de desarrollo: nuevos desarrollos, optimizaciones, correcciones de errores, etc. Todos atacan alguna funcionalidad específica. Lo que hay que tener claro es que el desarrollador programa una funcionalidad y una funcionalidad puede estar compuesta de más de un requerimiento que para el caso de la funcionalidad son indivisibles. Algo que se puede representar asi:

sc0001

Hay que tener cuidado en definir entonces los requerimientos y funcionalidades, en el primer caso no todo es indivisible, ya que 2 requerimientos pueden ser muy cercanos lo que no necesariamente los hace inidivisibles, quizas los puede hacer dependientes pero no indivisible, por ejemplo para calcular un bono de reconocimiento en Chile (un instrumento financiero) es necesario calcular la UF, el calculo de la UF es un requerimiento del cuan el calculo del bono depende, pero el calculo de la UF puede ser vista de forma independiente del calculo del bono.

Entonces, cuando un desarrollador termina una funcionalidad, recien entonces esa funcionalidad puede ‘pasarse’ a QA para que la revise. Este ‘pasarse’ implica pasar todos los archivos de codigo, scripts y configuraciones necesarias para la correcta ejecucion de la funcionalidad. QA lo revisa, lo acepta o lo rechaza, si lo acepta la funcionalidad, o sea, todos los archivos y configuraciones necesarias quedan a la espera de ser fusionadas con la version de produccion para generar un release productivo.

Si lo rechaza es otro cuento, debido a que la funcionalidad se ‘saca’ de la version de QA y no pasara al release, es aqui donde se debe poseer un proceso adecuado para que no se ‘ensucien’ las liberaciones de las funcionalidades junto con otras, este control es el que debe ser cuidadoso. Es aqui donde aparece el control de versiones y el proceso de versionamiento de software.

(Continuará…)

Megabytes libres para Subversion

miércoles, octubre 10th, 2012

Para los que estamos acostubrados a trabajar con controladores de versiones nos es útil contar con un par de megabytes libres para poder comprometer dentro de un servidor. Es en esta busqueda que me he topado con un par de sitios que ofrecer repositorios pagados, pero todos ellos tienen un plan libre que ofrece una cantidad de megabytes gratuitos.

https://unfuddle.com/ 512MB Libres
https://projectlocker.com/ 200MB Libres
https://www.sliksvn.com/ 100MB Libres
https://riouxsvn.com/ 50MB Libres
https://xp-dev.com/ 10MB Libres

En este GonzaloAro_Blog_AnalisisSVN, resumo todas las sumas y restas de lo que pude extraer (a esta fecha ) de los servicios. Espero y les sea útil.

Instalar Subclipse en Eclipse

miércoles, mayo 25th, 2011

Subclipse es una herramienta para trabajar con versionamiento de código fuente a través de Subversion (svn). Para instalar este plugin debes hacerlo igual que todos los plugin existentes para eclipse, pero por si no sabes como instalar un plugin aqui va la información.

Primero debes ir al menu Help > Install new software…

Luego aparecera una pantalla, en la cual debes presionar el boton Add…

Debes rellenar las casillas segun la información presentada aquí, pero puedes extraela desde https://subclipse.tigris.org

Luego de lo cual aparecerá la siguiente pantalla donde deberas seleccionar al menos los items aqui desplegados:

Te informará de lo que descargará…

Y te pedirá que aceptes la licencia luego de leerla(s)…

Y comenzará la instalación, que dependiendo de la velocidad de tu red, durará más o menos.

Finalmente te solicitará reiniciar Eclipse (no el computador) para aplicar los cambios.

Backup subversion

viernes, febrero 27th, 2009

Para hacer una backup de subversion debes tener la ruta del repositorio y poder ejecutar el comando svnadmin, la linea de ejecucion sería

svnadmin dump /ruta/al/repositorio > /destino/repositorioAAAAMMDD.dump

Para poder extraer este dump

svnadmin load /ruta/al/repositorio < /destino/repositorioAAAAMMDD.dump