25
Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q.

Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Embed Size (px)

Citation preview

Page 1: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Concurrent Versions System

Daniel Vergara C.

Rodrigo Yañez Q.

Page 2: 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.

Page 3: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

CVS: Concurrent Versions System

CVS: Concurrent Versions System

Disponible para múltiples plataformas Funcionamiento simple Trabaja en forma local o remota

Page 4: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Conceptos básicosConceptos básicos

Page 5: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Conceptos básicosConceptos básicosRevisión

Page 6: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 7: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 8: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 9: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Obtener una copia de trabajoObtener una copia de trabajo

El comando para obtener un proyecto es checkout.

Ejemplo:$cd micopia

$cvs checkout proyecto

Page 10: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 11: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 12: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 13: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 14: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 15: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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.

Page 16: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 17: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 18: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 19: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 20: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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

Page 21: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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”

Page 22: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

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.

Page 23: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

Veamos un Ejemplo...Veamos un Ejemplo...

Page 24: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

ReferenciasReferencias

http://www.cvshome.org http://www.wincvs.org http://www.red-bean.com/cvsbook/

Page 25: Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q

FINFIN

¿Preguntas?