Contenido

Anuncio
Tutorial CVS
17/10/2001
Laboratorio Prácticas
Integración de Sistemas
CVS – Concurrent Version System
Manuel Álvarez Díaz
Departamento de Tecnoloxías da Información e as Comunicacións
Facultade de Informática
Universidade de A Coruña
mad@udc.es
Contenido
n
Laboratorio 2.1
n
CVS
n
n
n
n
n
n
Ejemplo de creación/utilización de CVS
16/10/2001
Integración de Sistemas
Introducción
Características
Elementos Básicos
Configuración/Inicialización
Comandos elementales
Laboratorio 2.1 - Integración de Sistemas
2
1
Tutorial CVS
17/10/2001
Laboratorio 2.1
n
n
Arranque de PCs por RED
Cada PC tiene una InCom TCP/IP Bootprom a la que
la BIOS, una vez ha inicializado el HW de la máquina,
pasa el control.
Utiliza protocolos DHCP/BOOTP & TFTP.
n
n
Muestra un menú con los modos de arranque
configurados:
1.
2.
3.
4.
n
n
n
n
n
NT Local
Linux RedHat Local
Linux por NFS RedHat 7.1 (kernel 2.2.19)
Linux por NFS RedHat 7.1 (kernel 2.4.2-2)
En función de la opción
La EPROM continúa un arranque normal de una de las
particiones de la máquina (la de NT o Linux, según opción).
Arranque por red.
n
n
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
3
Laboratorio 2.1 (II)
rostro
imaxes
S
H E
W L
E T
P A
C K
A R
D
D
S
H E
W L
E T
P A
C K
A R
D
NIS+
cuentas
NFS
imágenes
meiga01
meiga02
meiga03
D
S
meiga06
meiga07
16/10/2001
Integración de Sistemas
D
S
D
S
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
meiga18
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
meiga19
meiga20
D
S
D
S
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
meiga08
D
S
D
S
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
R O
P
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
D
S
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
D
S
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
R O
P
meiga17
D
S
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
meiga05
meiga04
D
S
R O
P
D
S
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
Laboratorio 2.1 - Integración de Sistemas
R O
P
fe s
ro
P
io n
l W
a
s ta
rk
o
io n
6 0
4
2
Tutorial CVS
17/10/2001
Concurrent Version System
n
n
n
n
n
n
n
n
CVS es un sistema (cliente/servidor) de control de versiones.
Permite que grupos de personas trabajen simultáneamente
sobre grupos de archivos, de forma distribuida (desde
localizaciones físicas remotas).
1986 primeros algoritmos de resolución de conflictos.
1989 primera versión.
Mantiene un “repositorio” central con las versiones más
recientes de los archivos.
El CVS es el encargado de unificar las modificaciones que
puedan hacer cada uno de los usuarios, creando un completo
historial de la evolución del desarrollo de un proyecto.
Un usuario puede realizar una copia local de los archivos
mediante un “check out” o ver el log de cambios de un archivo.
Si posteriormente se añaden nuevos archivos o modificaciones
de existentes en el repositorio, el usuario puede actualizar
(“update”) su copia.
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
5
Introducción
n
Cuando un usuario modifica un archivo puede
añadirlo al repositorio haciendo un “commit”.
n
n
No se puede añadir un cambio sobre el repositorio
directamente si la copia local no se corresponde con
la última versión del repositorio.
n
n
Si un usuario modifica un archivo que ha sido modificado
previamente por otro, no podrá hacer un “commit” de sus
cambios hasta que realice un “update ” que intente mezclar
sus cambios con los realizados por el otro usuario.
Cuando un usuario no necesita disponer de la copia
local, puede liberarla (“release”) y posteriormente
borrar su directorio local.
16/10/2001
Integración de Sistemas
Sólo se deben de realizar “commits” de código ya probado
(al menos, asegurar que compila) !!!
Laboratorio 2.1 - Integración de Sistemas
6
3
Tutorial CVS
17/10/2001
Características CVS
n
Acceso concurrente a múltiples desarrolladores.
Varias líneas de desarrollo en un único repositorio.
Agrupación de fuentes en módulos.
Marcación simbólica de versiones de fuentes.
Diferencias entre versiones.
n
Soporte de log configurable
n
n
n
n
n
n
n
... con apoyo de programas externos.
Soporte de archivos binarios.
Respuesta automática ante eventos.
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
7
¿Qué no es CVS?
n
No es un constructor aplicaciones (make, ant).
n
n
No sustituye al organizador del proyecto
n
n
n
n
No almacena información sobre bugs actuales.
No almacena los grupos de archivos involucrados en un
commit múltiple (sólo mantienen el comentario común).
No es un depurador/probador de aplicaciones
No tiene un modelo de proceso de construcción de
sistemas.
16/10/2001
Integración de Sistemas
Sólo trata conflictos de forma textual sobre un mismo
archivo, no puede resolver conflictos de lógica de programa.
No posee control de cambios
n
n
Necesario un director, planificador.
No anula la comunicación entre desarrolladores.
n
n
Sólo almacena archivos.
Laboratorio 2.1 - Integración de Sistemas
8
4
Tutorial CVS
17/10/2001
Elementos básicos
n
n
n
n
n
Repositorio: El directorio o árbol de directorios que
almacena las copias de los archivos.
Módulo: Un directorio específico (o mini-árbol de
directorios) del repositorio.
RCS: Revision Control System. Conjunto de utilidades
del CVS para realizar procesamientos de versiones.
Check Out: Hacer una copia de un archivo que se
encuentra en el repositorio, para examinarlo o
trabajar con él.
Revisión: Una marca numérica o alfanumérica que
identifica la versión de un archivo.
n
1.1 – 1.2 – 1.3 - ...
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
9
Datos utilizados por CVS
n
En el repositorio
n
El módulo CVSROOT contiene archivos de configuración específicos
para el CVS:
n
n
n
n
n
n
n
n
Estos archivos pueden ser modificados por cualquier usuario:
En la copia local del usuario
n
CVS/Entries
n
CVS/Repository
n
CVS/Root
n
n
n
16/10/2001
Integración de Sistemas
commitinfo: acciones en commits.
loginfo: acciones sobre comentarios de commits.
history: Historial de acciones sobre el repositorio.
cvsignore: Lista de archivos a ser ignorados por CVS (ó variable de
entorno $CVSIGNORE). [e.g. *.zip. Añadirlo a CVSROOT]
modules: Definición lógica de los módulos del repositorio.
notify: Notificación de acciones sobre edición.
Lista de todos los archivos locales en el repositorio
El nombre del módulo al que pertenece el directorio local.
El CVSROOT utilizado en la operación de ‘checkout’.
Laboratorio 2.1 - Integración de Sistemas
10
5
Tutorial CVS
17/10/2001
Configuración CVS
n
n
Para conectarnos a un repositorio es necesario conocer su
localización y sus mecanismos de acceso: CVSROOT.
Repositorio local (o accesible via NFS):
n
n
CVSROOT=/home/cvsroot
Repositorio remoto (protocolos más utilizados):
n
Password Server Protocol
CVSROOT=:pserver:user@hostname.hostdomain:/home/cvsroot
n
n
n
n
n
Normalmente para repositorios con usuarios anónimos.
RSH/SSH (Variable de entorno CVS_RSH=ssh; rsh por defecto)
CVSROOT=:ext:user@hostname.hostdomain:/home/cvsroot
Es necesario poseer una cuenta de usuario en la máquina remota.
Si no se establece la variable de entorno CVSROOT es necesario
indicarla en comandos como ‘checkout’ con la opción –d.
Para los comandos que se ejecutan dentro de la estructura de
directorios de módulos locales no es necesario indicar –d (se encuentra
replicada dentro de los directorios CVS).
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
11
Import/Export
n
cvs import –m ‘comment’ module vendor-tag release-tag
n
n
n
cvs export –r rev|-d date module
n
n
16/10/2001
Integración de Sistemas
Instala un conjunto de archivos dentro del repositorio, y
crea un módulo para ellos. Se mantiene la organización de
directorios original.
Crea un módulo y añade a él todos los archivos/directorios
del directorio en el que se ejecute el comando
Extrae archivos de un módulo para producir una distribución
independiente del CVS.
Es necesario indicar un “tag” o una “fecha”.
Laboratorio 2.1 - Integración de Sistemas
12
6
Tutorial CVS
17/10/2001
Principales comandos CVS
n
cvs [cvs-options] command [cmd-options] [files]
n
checkout (co)
update
commit (ci)
Obtiene una copia local de los fuentes.
Actualiza las copias locales de archivos.
Aplica los cambios locales al repositorio.
n
add
n
n
n
remove
tag
Añade un nuevo archivo/directorio a
un módulo.
Borra una entrada de un módulo.
Etiqueta los archivos locales.
n
status
Muestra el estado de los archivos locales.
n
log
Muestra el historial de los archivos
(información indicada en los commit)
(recursivo por directorios)
n
diff
Compara archivos locales con versiones
del repositorio (o distintas versiones).
n
R: Repositorio;
W: espacio de datos local
16/10/2001
Laboratorio 2.1 - Integración de Sistemas
R à W
R à W
W à R
13
Referencias
n
Página oficial CVS:
n
n
Desde linux:
n
n
info cvs
Ayuda de cvs:
n
16/10/2001
Integración de Sistemas
http://www.cvshome.org
cvs --help <comando>
Laboratorio 2.1 - Integración de Sistemas
14
7
Descargar