Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q.
INTRODUCCIÓN ¿De dónde surge? La solución: Sistemas de Control de Versiones Ventajas: - Administrar versiones de archivos - Evitar redundancia - Centralizar la información - Permitir la libre modificación sin destruir trabajo anterior.
CVS: Concurrent Versions System Disponible para múltiples plataformas Funcionamiento simple Trabaja en forma local o remota
Conceptos básicos
Revisión
Creación de un repositorio Definir variable de entorno CVSROOT $export CVSROOT=/home/alm99/login/repositorio Inicializar el repositorio $cvs init
Acceder a un repositorio En un sistema local: $cvs –d home/alm99/login/repositorio comando o $cvs comando Forma remota (SSH): lm99/login/repositorio $export CVSROOT CVS_RSH=ssh
Comenzar un proyecto nuevo Introducir un proyecto nuevo al repositorio CVS se denomina importar. Se utiliza cvs import Ejemplo: $cd proyecto $cvs import –m “importación tarea1” proyecto login start
Obtener una copia de trabajo El comando para obtener un proyecto es checkout. Ejemplo: $cd micopia $cvs checkout proyecto
Obtener una copia de trabajo Estructura del Contenido de la copia /proyecto |---/CVS | |---/Módulo_1 || /Submódulo_1 del Módulo_1 || /CVS | |---/Módulo_2 || /Submódulo_1 del Módulo_1 || /CVS
Obtener una copia de trabajo Archivos del Directorio CVS |---/CVS | Root | Repository | Entries -Root: contiene la ruta al repositorio -Repository: contiene la ruta de un proyecto dentro del repositorio. -Entries : contiene información sobre cada uno de los ficheros que forman parte del proyecto
Actualización de nuestra copia local Para actualizar nuestra copia local respecto a los cambios del repositorio central se utiliza el comando update Ejemplo: $cvs update o también: $cvs update nombre_archivo
Comparando ficheros con el repositorio El comando diff muestra cualquier diferencia entre los ficheros de la copia local y sus homónimos en el repositorio Ejemplo: $cvs diff
Enviar cambios al Repositorio El comando commit envía al repositorio las modificaciones que hemos estado realizando en nuestra copia local. Ejemplo: $cvs commit -m "mensaje del cambio“ archivo
Enviar cambios al Repositorio IMPORTANTE - Al enviar el fichero, el proyecto original no se ve afectado. - Se agrega una nueva revisión. - Cuando un cliente solicita una copia del proyecto obtiene la última revisión de cada fichero contenido en el repositorio.
Averiguar quien hizo que Suponiendo que el proyecto a pasado por varios cambios y queremos saber que archivos han sido modificados, no es necesario examinar con detalle cada fichero de diferencias. Esto se realiza con el comando log: $cvs log
Examinar y deshacer cambios Supuesto: el usuario “davec”, se percata que “royaq” hizo el cambio mas reciente a “tarea1” Pregunta: ¿Cuál es la diferencia entre mi revisión (1.2) de “tarea1”y la revisión de “royaq” que vino a continuación (1.3)? Respuesta: $cvs diff –c –r 1.2 –r 1.3 archivo
Añadir archivos y directorios al repositorio Archivo: Se utiliza el comando add y luego se debe enviar al repositorio (commit). Ejemplo: $ cvs add newfile.c $ cvs commit -m “nuevo fichero” newfile.c
Añadir archivos y directorios al repositorio Directorio: También se utiliza el comando add, pero no se debe enviar al repositorio. Ejemplo: $ mkdir new-subdir $cvs add new-subdir
Eliminando Ficheros Eliminar un fichero es similar a añadir uno, con la salvedad de que se debe hacer un paso adicional: eliminar primero el fichero de la copia de trabajo. Ejemplo: $rm newfile.c $ cvs remove newfile.cl $ cvs commit –m “eliminando archivo” newfile.c
CVS y los ficheros eliminados Cvs no borra ningún fichero del repositorio. Lo mueve a un directorio llamado Attic Lo marca como “muerto” estando disponible en caso de desear “revivirlo”
Formas Abreviadas de CVS Los comandos CVS tienen una forma abreviada Los mas usados son: checkout=co update=up commit=ci Se puede obtener una lista de todas las formas abreviadas ejecutando el comando: $ cvs –help-synonyms.
Veamos un Ejemplo...
Referencias
FIN ¿Preguntas?