Sistemas de Control de Versiones Introducción a los conceptos de control de versiones Introducción a la utilización de la herramienta DARCS Basado en: http://lug.fi.uba.ar/documentos/scms/
Desarrollo de software El proceso del desarrollo de software es social y creativo. A la hora de programar, es importante poder concentrarse en el código y no en metodologías. Todo software evoluciona y sufre cambios con el tiempo. Es importante poder analizar estos cambios, para corregir errores.
Trabajo en Grupo Un grupo sin coordinación, no funciona. El caos en la programación no suele tener buenas consecuencias. El problema principal con respecto al código es el trabajo en simultáneo. Es imprescindible poder ver qué cambios fueron introducidos y quién los realizó. Tener la capacidad de volver para atrás los cambios que hayan sido contraproducentes.
Sistemas de control de versiones Existen numerosos sistemas: Centralizados: CVS, SVN Distribuidos: Arch, Git, Darcs Privativos: SourceSafe ® Cada uno tiene sus particularidades. Pero el objetivo es el mismo: gestionar el código y permitir trabajar de forma ordenada. No importa el lenguaje en el que se programe, siempre se pueden utilizar.
Términos relacionados Repositorio: conjunto de código + el historial de los cambios realizados sobre el código Parches: modificaciones realizadas al código. Ramas (Branches): árboles de código que se independizaron del central, pero que comparten una historia común.
Darcs Es distribuido, cada persona tiene su propio repositorio de código y mantiene su historial de cambios Permite trabajar en forma paralela, sin dolores de cabeza. Se utiliza por línea de comandos. Hay plugins para numerosos entornos de desarrollo.
¿Cómo funciona? Cada integrante del equipo de trabajo arma sus cambios en forma de parches. Se intercambián sólo las modificaciones y no todo el código. En general, se trabaja con repositorios que están publicados en Internet (vía web).
Comandos 1/2 darcs init - Inicializa el repositorio darcs add archivo/s - Agrega archivos o directorios darcs record - Almacena los cambios realizados darcs changes - Muestra los cambios almacenados darcs whatsnew - Muestra los cambios no guardados darcs revert - Vuelve un cambio atrás
Comandos 2/2 darcs get http://... - Obtiene un repositorio publicado en la web darcs send -o archivo http://... - Guarda los cambios en un archivo darcs pull http://... - Actualiza el repositorio local darcs apply archivo - Aplica los cambios que se encuentren en el archivo
¿Cómo trabajar con Darcs? Tener un repositorio publicado en la web (por ejemplo en aleph.fi.uba.ar ). Cada uno trabaja en su computadora, pero los cambios los hacen y aplican a ese repositorio. Hay un integrante que está encargado de aplicar los parches al repositorio web. También es posible trabajar en una estación cualquiera, siempre que tenga acceso a Internet.
Árbol de archivos ->Algo3 (dir. general de la materia) |----->Tp3 (directorio del proyecto) |---> darcs.exe (el programa darcs) |---> _darcs (info. del repositorio) |---> (...) (código del proyecto) |----->rsync.exe (sólo necesarios para el |----->ssh.exe que sube los archivos) En GNU/Linux no son necesarios los ejecutables, funciona directamente.
Paso a paso para trabajar con un repositorio publicado Sólo la primera vez: darcs get http://web.fi.uba.ar/~usuario/... Antes de empezar a trabajar, siempre, hacer: darcs pull Si hay que agregar algún archivo, hacer: darcs add archivo/s Para grabar un conjunto de cambios, hacer: darcs record Para enviar los cambios realizados, hacer: darcs send -o archivo Y luego enviar el archivo generado por mail
Paso a paso para publicar un repositorio La primera vez, inicializar el repositorio: darcs init Conectarse a aleph y crear el directorio: ssh usuario@aleph.fi.uba.ar mkdir -p public_html/darcs/ Para sincronizar el repositorio local con el de aleph: rsync --rsh=ssh -vrzltP --delete proyecto usuario@aleph.fi.uba.ar:./public_html/darcs Explicado en detalle en: http://lug.fi.uba.ar/documentos/scms/darcs_en_aleph. php
Enlaces Darcs - Versión para Windows: http://glozer.net/darcs/darcs-1.0.6-win32.zip Rsync – Versión para Windows: http://optics.ph.unimelb.edu.au/help/rsync/ binaries/rsync_minimal.zip Plugin para eclipse: http://www.eclipsedarcs.org/