• LinkedIn
  • Suscríbete a nuestro RSS

SVN: Vital para trabajar colaborativamente.

22 jun, 2011   //   Blog

Como en otras ocasiones ya hemos comentado, son varias las aplicaciones que tenemos que tener a punto para TLP, así como varias son las herramientas que hacemos uso para poder desarrollar y gestionar de una forma eficiente la evolución de dichas aplicaciones. Hoy queríamos daros a conocer una de estas herramientas denominada SVN, la cual es una herramienta conocida dentro del mundo de la ingeniería informática y de vital importancia para un desarrollador de software, especialmente cuando se trabaja en un entorno colaborativo en el que son varias personas las que realizan dicho desarrollo.

El acrónimo SVN hace referencia al término Subversion, el cual es un tipo de sistema de control de versiones centralizado (CVCS). Este tipo de herramientas nos permite poder almacenar en un repositorio central un conjunto de ficheros fuentes, así como tener un histórico de todos los cambios que reciben los ficheros almacenados en dicho repositorio. Estos cambios pueden ser desde crear nuevos ficheros en el repositorio, eliminarlos, o modificar cualquier fichero ya existente.

SVN nos permite que el desarrollo de aplicaciones en un entorno colaborativo se realice de una forma más controlada. Los desarrolladores de las aplicaciones se descargan el contenido de un repositorio en su máquina local, continúan con el desarrollo de las mismas, y en cualquier momento pueden volver a introducir los cambios realizados en este repositorio central, creando así una nuevo estado o revisión del repositorio. Asimismo, los desarrolladores pueden traerse a su máquina local, cualquier cambio en el repositorio central que se haya producido (por ejemplo, cambios realizados por otro desarrollador) desde la última vez que el usuario actualizó la aplicación desde dicho repositorio.

Como podéis imaginar, ya podemos tener una idea de las ventajas de utilizar este tipo de herramientas. Sin embargo, podemos encontrar muchas más:

  • Al tener un histórico de los cambios realizados sobre el repositorio (las diferentes, revisiones o versiones), siempre tendremos la posibilidad de modificar nuestra aplicación en local a cualquiera de las revisiones anteriores del repositorio central. Desde toda la aplicación, a cualquier subconjunto de ella, incluso hasta un único fichero.
  • En cualquier momento podremos comprobar, los cambios realizados entre una revisión y otra del repositorio central, e incluso el momento en la que se hizo, y quien la realizó.
  • Tendremos la posibilidad de crear etiquetas (tags) sobre el estado del repositorio, de forma que nos podremos identificar de una forma más legible el estado del repositorio en un momento dado (por ejemplo, al alcanzar un hito en el desarrollo de la misma).
  • Podremos crear nuevas ramas (branches) del repositorio para realizar de forma paralela el desarrollo de nuestra aplicación (o de alguna parte de ella). Esto es muy útil si se quiere desarrollar y (registrar el histórico) de un componente experimental de la aplicación, o incluso si se desea realizar un desarrollo de mantenimiento de una aplicación (bug fixing), sin bloquear el desarrollo de la nueva versión de la aplicación (que incluya nuevas características) en la rama principal (trunk). Por supuesto, cualquier desarrollo de la aplicación que se realice en una nueva rama, puede fundirse (merge) posteriormente en la rama principal del repositorio.

Como podéis imaginar, en Innova7 consideramos que la utilización de este tipo de herramientas resulta indispensable para el desarrollo de aplicaciones. Si algún día os enfrentáis al reto de desarrollar una aplicación de relativa complejidad (incluso si la desarrolláis vosotros solos!!) os recomendamos encarecidamente el utilizar este tipo de herramientas.

Finalmente, no queríamos olvidarnos de comentar que actualmente proliferan otro tipo de sistema de control de versiones, concretamente, los denominados distribuidos (DVCS), como por ejemplo git o mercurial. Quizás, si encontráis este artículo interesante, podríamos crear una nueva entrada sobre alguno de estos sistemas de control de versiones.

Deja tu comentario