Sistemas de Control de Versiones (SCMs) Introducción a los conceptos de control de versiones Introducción a las herramientas darcs y svn Margarita Manterola - LUGFI
Casos de Uso de los SCM Backup personal Desarrollo de Software Trabajo en grupo Edición concurrente Gestión de versiones
Soluciones pre-SCM Directorios Compartidos Ftp Archivos numerados Discos de BackUp
Diff + Patch
Diff + Patch: el archivo diff --- archivoO archivoA ,5 +4,5 Import java.util.* -public class Auto +public class Auto : extends Vehiculo
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.
Herramientas Centralizadas – Lock-Modify-Unlock Source Safe (Privativo) – Copy-Modify-Merge CVS SVN Distribuidas – Darcs – Git – Bazaar Cada uno tiene sus particularidades. Pero el objetivo es el mismo: gestionar el código y permitir trabajar de forma ordenada.
SVN Es centralizado: hay un repositorio en un servidor central. Todos los usuarios envían sus cambios y bajan actualizaciones desde ese servidor. Las versiones son por el estado completo del repositorio.
Usando SVN svn import -m "Inicial" svn checkout svn add Clase.java OtraClase.java svn commit -m "Arreglo del problema con Strings" svn remove ClaseVieja.java
Darcs Es distribuido: cada persona tiene su propio repositorio de código y mantiene su historial de cambios. 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.
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 para 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.
Usando darcs 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 darcs get - Obtiene un repositorio publicado en la web darcs send -o archivo - Guarda los cambios en un archivo darcs pull - Actualiza el repositorio local darcs apply archivo - Aplica los cambios que estén en el archivo
Más Info