Concurrent Versions System
Daniel Vergara C.
Rodrigo Yañez Q.
INTRODUCCIÓNINTRODUCCIÓ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
CVS: Concurrent Versions System
Disponible para múltiples plataformas Funcionamiento simple Trabaja en forma local o remota
Conceptos básicosConceptos básicos
Conceptos básicosConceptos básicosRevisión
Creación de un repositorioCreación de un repositorio
Definir variable de entorno CVSROOT$export
CVSROOT=/home/alm99/login/repositorio
Inicializar el repositorio $cvs init
Acceder a un repositorioAcceder a un repositorio
En un sistema local:$cvs –d home/alm99/login/repositorio comando
o
$cvs comando
Forma remota (SSH):$CVSROOT=:ext:[email protected]:/home/
alm99/login/repositorio
$export CVSROOT CVS_RSH=ssh
Comenzar un proyecto nuevoComenzar un proyecto nuevo
Introducir un proyecto nuevo al repositorio CVS se denomina importar.
Se utiliza cvs importEjemplo:
$cd proyecto
$cvs import –m “importación tarea1” proyecto login start
Obtener una copia de trabajoObtener una copia de trabajo
El comando para obtener un proyecto es checkout.
Ejemplo:$cd micopia
$cvs checkout proyecto
Obtener una copia de trabajoObtener 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 trabajoObtener 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
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
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 RepositorioEnviar 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 RepositorioEnviar 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 queAveriguar 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 cambiosExaminar 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
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
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 FicherosEliminando 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 y los ficheros eliminados
Cvs no borra ningún fichero del repositorio.Lo mueve a un directorio llamado AtticLo marca como “muerto” estando
disponible en caso de desear “revivirlo”
Formas Abreviadas de CVSFormas Abreviadas de CVS
Los comandos CVS tienen una forma abreviadaLos mas usados son:
checkout=coupdate=up commit=ci
Se puede obtener una lista de todas las formas abreviadas ejecutando el comando:$ cvs –help-synonyms.
Veamos un Ejemplo...Veamos un Ejemplo...
ReferenciasReferencias
http://www.cvshome.org http://www.wincvs.org http://www.red-bean.com/cvsbook/
FINFIN
¿Preguntas?