Sistema de Control de Versiones

Sistemas de Control de Versiones

Conferencia de Software Libre
Por Alfonso Alí
27 de marzo del 2007

En esta conferencia se abordó los sistemas de control de versiones Subversión y CVS

Trabajo colaborativo de manera coordinada:
1. Subversión
2. Proyecto de aplicación
3. Aplicaciones.

Se comentó sobre la forma de controlar las versiones de una aplicación durante su gestación. Esta es una actividad fundamental durante el desarrollo de cualquier proyecto. Usualmente se hace almacenando copias del sistema junto a comentarios de los cambios hechos. Esto es ineficiente y se puede cometer errores como sobrescribir el trabajo de otros. Este método fue calificado como primitivo.

Los sistemas de control de versiones permiten el seguimiento, mantenimiento y almacenamiento de la historia de cambios en los códigos fuentes de un proyecto. Proporciona facilidades de combinar cambios de múltiples personas.

Beneficios:
• Integridad de datos
• Productividad
• Identificabilidad
• Desarrollo colateral
• Distribución del trabajo

Elementos:
• Repositorio: Contiene todo el proyecto
• Directorios de trabajo: Copia sobre la cual trabaja la persona.
• Revisiones: Cambios realizados en el proyecto en un momento determinado.
• Logs: Documentación de los cambios y detalles extras.
• Marcas (Tags): Nombre de una etapa de proyecto.
• Ramas (Branches): Vida paralela. Versiones de un proyecto que se llevan paralelos.

Ejemplos:
Centralizados: RCS, CVS
Distribuidos: SVK, Arch, Darc, Git, Monotone

Subversion:
• Similar a CVS
• Superior al CVS, mejorado.
• Commits atómicos, o sea al realizar actualizaciones en el proyecto estas se guardan completamente o no se guardan en caso de ocurrir alguna interrupción.
• Usa http como vía de acceso.
• Scripts de acciones
• API

Tareas básicas:
• Crear repositorio (svnadmin create)
• Crear proyecto (svn import)
• Obtener ficheros (svn co)
• Determinar que ha cambiado (svn status, svn diff)
• Actualizar copia de trabajo (svn update)
• Actualizar repositorio (svn commit)
• Resolver conflictos (svn resolve)
• Añadir fichero (svn add)
• Borrar fichero (svn del)

Carpetas del repositorio:
Trunk: Línea principal o tronco del proyecto
Tags: Puntos en la historia del proyecto
Branche: Rama del proyecto

Sistema de control de versiones SVK
Es más efectivo que otros sistemas si no contamos con una buena conexión permanente. Es un sistema distribuido. Hace sincronización cuando hay conexión. Este será el sistema que se empleará en el curso. La combinación entre ramas es muy fácil.

Comandos:
Como comandos básicos tiene los mismos del Subversión. Además,
Iniciar depósito: svk depotmat –init
Hacer el mirror: svk mirror http://repo//repo
Sincronizar mirror: svk sync//repo
Crear una rama local: svk cp//repo// local//repo
Incorporar cambios a la rama local: svk smerge –l //repo //local/repo
Incorporar cambios al repo: svk smerge –l //local/repo //repo
-l esta opción incorpora automáticamente los mensajes echos.

Manejo de patch
Se crean igual pero con –p
Crear un patch: svk smerge –p mipatch //local/repo //repo
Ver match creados: svk match –list
Obtener un patch determinado: svk patch –view mipatch
Actualizar patch: svk patch –update mipatch
Recrear un patch: svk –regen mipatch

Leer más sobre este tema:
Control de versiones

Introducción a los sistemas de control de versiones

Control de Versiones con Subversion

Se hizo un aparte recomendando la lectura de la “La catedral y el Bazar” de Eric S. Raymond. Un ensayo a favor del software libre. Este es un espaldarazo a la necesidad del empleo de este tipo de sistemas de control de versiones.

Y otro artículo sobre este con una crítica al ensayo. (Ver artículo)

Se introdujo el futuro proyecto que será desarrollado en el curso como ejercicio práctico. Este será argumentado más adelante.

Anuncios

2 comentarios to “Sistema de Control de Versiones”

  1. Una tortuga controladora de versiones. « Trabajos de Alexander Says:

    […] o comprobando esos cambios al día siguiente. Ya con anterioridad me había referido a los sistemas de control de versiones. Entre ellos estaban el Subversión. Pensaba que estas técnicas eran privativas del Software Libre […]

  2. La Tortuga se mueve « Trabajos de Alexander Says:

    […] Tortuga se mueve Anteriormente les hable de TortoiseSVN. Ya la he puesto en práctica para comenzar a hacer mis primeros trabajos siguiendo la filosofía […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: