SVN Subversion: Sistema de Control de Versiones

08 Julio 2009 Publicado en Blog

Una versión, revisión o edición de un producto, es el estado en el que se encuentra en un momento dado en su desarrollo o modificación. Llamamos control de versiones a la gestión de los diferentes cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas (por ejemplo, para algún cliente específico). En el caso particular de la informática se utiliza para hacer un seguimiento de las distintas versiones del código fuente que son modificadas continuamente por el equipo de desarrollo. Para realizar esta gestión una de las herramientas más utilizadas es Subversion.

Subversion es un software de sistema de control de versiones que busca reemplazar al popular CVS, el cual posee varias deficiencias. Es software libre y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos.

El uso de aplicaciones web crece día a día como así también su tamaño, es por esto que es normal que en proyectos de este tupo, se involucre a numerosos desarrolladores con diversas habilidades para terminar el producto a tiempo. Este es el motivo por el cual se utiliza esta herramienta. Todos los ficheros relacionados al proyecto se alojan en el repositorio el cual se encuentra en un servidor remoto. Cada vez que cualquiera de los integrantes del grupo realiza un cambio, lo envía al repositorio, el cual luego podrá ser descargado por el resto de los integrantes del equipo.

Estos son alguno de los beneficios que obtenemos al utilizar esta herramienta:

  • Varios usuarios pueden editar el mismo archivo simultáneamente. Todos pueden trabajar sin interrupciones en su copia local, luego, a la hora de enviar los cambios, el sistema brindará herramientas para integrarlos al repositorio sin sobrescribir los realizados por otro desarrollador.
  • Asociar las modificaciones a una tarea. Cada vez que se envían cambios al repositorio se pueden asociar a una tarea en particular (ej: desarrollo de una nueva funcionalidad, modificación, solución de un bug, etc).
  • Se puede volver a versiones anteriores. En cualquier momento se puede volver a cualquier versión anterior del producto.
  • Se tiene un historial de los cambios realizados en el repositorio. Útil en caso de que no recordemos que archivos se modificaron en una tarea en particular. Se cuenta con un historial de todos los cambios enviados y para cada uno cuales archivos fueron modificados.
  • Permite obtener métricas. Útil para medir la calidad y cantidad de trabajo realizado en una unidad de tiempo.
  • Restringir lectura/escritura de directorios. Permite configurar permisos de escritura y lectura sobre cada directorio a diferentes usuarios. De esta manera solo se dan accesos según el perfil y el tipo de tareas a realizar por cada integrante.
  • Backup. Todas las versiones del producto están alojadas en el servidor remoto. Solo basta con que el administrador del mismo se encargue de realizar el respaldo del repositorio.

Serfe info(at)serfe.com https://www.serfe.com/images/serfe_logo_text.png https://www.serfe.com/images/serfe_logo_text.png FALUCHO 2032, S3016LDB, SANTO TOME, SANTA FE, ARGENTINA 1-305-5375397