PDF de programación - II Curso de introducción a CVS

Imágen de pdf II Curso de introducción a CVS

II Curso de introducción a CVSgráfica de visualizaciones

Publicado el 22 de Mayo del 2018
346 visualizaciones desde el 22 de Mayo del 2018
620,7 KB
34 paginas
Creado hace 21a (07/04/2003)
II Curso de introducción a CVS
Álvaro Sánchez-Mariscal ([email protected])

Grupo de usuarios de

linux

Univ. Carlos III de Madrid

2 de abril de 2003

Contenido

1

Contenido

¿Qué es CVS?.

¿Qué no es CVS?.

Conceptos básicos.

Método pserver vs. método ssh.

Una sesión de trabajo típica.

Comandos más importantes.

Conflictos.

Comentarios.

Direcciones de interés.

Dudas y preguntas.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

¿Qué es CVS? (I)

2

¿Qué es CVS? (I)

Concurrent Versions System.

Sistema cliente/servidor de control de versiones.

Mantiene un repositorio de software centralizado, permitiendo que
grupos de personas trabajen simultáneamente sobre él de forma dis-
tribuída.

CVS se encarga de unificar las modificaciones que puedan hacer cada
de los usuarios.

Muy útil para proyectos en los que haya involucradas una o más per-
sonas.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

¿Qué es CVS? (y II)

3

¿Qué es CVS? (y II)

Figura 1: Esquema del funcionamiento de CVS

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

¿Qué no es CVS

4

¿Qué no es CVS

No construye aplicaciones (make), sólo almacena archivos.

No sustituye la figura de coordinador o jefe de proyecto.

No anula la comunicación entre desarrolladores, sólo trata conflictos
de forma textual.

No tiene un control de cambios sobre bugs.

No depura ni prueba aplicaciones.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Conceptos básicos (I)

5

Conceptos básicos (I)

Repositorio El directorio en el servidor a partir del cual se almacenan

todos los ficheros (ej: /home/cvs).

Módulo Un directorio específico del repositorio. Cada proyecto se alma-

cena en un módulo (ej: practica-iissoo).

Check-out Operación que sirve para descargar el contenido de un módu-

lo. Se hace una sóla vez.

Commit Operación que sirve para subir los cambios que un desarrolla-
dor ha hecho sobre su copia local. Se suele hacer tras una sesión de
trabajo, y sobre código que funciona (o que al menos compila).

Update Operación que sirve para actualizar la copia local con los cam-
bios que hayan podido hacer otros desarrolladores. Se hace siempre
antes de una sesión de trabajo.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Conceptos básicos (y II)

6

Conceptos básicos (y II)

Revisión Indicador numérico o alfanumérico que existe sobre cada fi-

chero del proyecto (ej: 1.3).

Rama Versión especial que se puede crear sobre una versión estable de
un repositorio para optimizar código, probar nuevas funcionalidades,
etc.

Tag Agrupación lógica que se puede hacer sobre un estado concreto de
un proyecto (ej: VERSION 1 0). Un tag concreto no es más que las
revisiones que tenían los fuentes en el momento de crear el tag.

$CVSROOT Variable de entorno definida en los clientes que indica el méto-
do de conexión con el servidor, el usuario, la ruta al repositorio en el
servidor, etc (ej: :pserver:[email protected]:2401:/home/cvs).

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Método pserver vs. SSH

7

Método pserver vs. SSH

La autenticación por pserver carece totalmente de seguridad.

Tanto las contraseñas como los ficheros viajan por la red sin cifrar.

Además, un servidor pserver mal configurado puede comprometer la
seguridad de toda la máquina.

La ventaja es que los usuarios del servidor pserver no tienen porqué ser
usuarios de la máquina.

Con el método ssh, la comunicación con el servidor se realiza de forma
segura.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Método pserver vs. SSH

8

Pero con el método ssh, los usuarios del CVS tienen que ser usuarios
del sistema (es decir, tener cuenta en /etc/passwd con una shell
válida).

En muchas situaciones no vamos a poder (o no vamos a querer) crear
cuentas de usuario con acceso a una shell para que usen el CVS.

Con el método pserver, el único usuario del sistema es el usuario no
privilegiado cvs.

Su uso actualmente sólo está recomendado para cuentas de usuario
anónimas.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Método pserver vs. SSH

9

Existen otras alternativas para aumentar la seguridad del servidor pser-
ver.

Muchas de ellas se basan en aplicar parches SSL al servidor CVS.

El problema es que a veces también hace falta parchear los clientes.

Una buena aproximación intermedia es la creación de un entorno ch-
root (enjaulado) en el que ejecutar el servidor SSH y el servidor CVS.

De esta manera, podemos tener cuentas ficticias que se comunicarían
con el servidor vía SSH.

intentaran acceder por SSH a una shell, estarían dentro de un

Si
entorno restringido (la jaula) del que no podrían salir.

Los usuarios normales de la máquina podrían acceder normalmente
con otro servidor SSH en otro puerto.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Configuración: método SSH

10

Configuración: método SSH

Variables de entorno en el cliente:
• Variable CVS RSH=/usr/bin/ssh
• Variable CVSROOT=":ext:[email protected]:/home/cvs"

El servidor sólo necesita tener instalado el paquete CVS (es a la vez
cliente y servidor).

Cada vez que se ejecute un comando CVS, se deberá introducir la
contraseña (son accesos SSH normales y corrientes) a menos que
esté configurado el acceso sin contraseña mediante claves públicas.

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Una sesión de trabajo típica (I)

11

Una sesión de trabajo típica (I)

Nos autenticamos en el servidor (no necesario con método SSH):
$ cvs login
Logging in to :pserver:[email protected]:2401/home/cvs

CVS password:

Nos bajamos un módulo:

$ cvs co curso-cvs

cvs server: Updating curso-cvs

U curso-cvs/Makefile

U curso-cvs/curso-cvs.tex

U curso-cvs/gul.epsi

U curso-cvs/slnuevo.sty

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Una sesión de trabajo típica (II)

12

Una sesión de trabajo típica (II)

Editamos y realizamos los cambios que sean necesarios.

Subimos los cambios al repositorio:
$ cvs ci -m "Añadida sección 3" curso-cvs.tex
Checking in curso-cvs.tex;
/home/cvs/curso-cvs/curso-cvs.tex,v
new revision: 1.5; previous revision: 1.4
done

<--

curso-cvs.tex

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Una sesión de trabajo típica (y III)

13

Una sesión de trabajo típica (y III)

. . . días después volvemos a trabajar sobre el proyecto. Actualizamos
nuestra copia local con los cambios que hayan podido hacer otros
usuarios:
$ cvs up -d -P
? curso-cvs.dvi
? curso-cvs.ps
cvs server: Updating .
P Makefile
P curso-cvs.tex

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (I). Add

14

Comandos más importantes (I). Add

cvs add [-k flag] [-m "comentario"] ficheros...

Añade ficheros y/o directorios a un repositorio

Para añadir un fichero que está en un directorio que no existe en el
repositorio, primero se añade el directorio y luego el fichero

Después de añadirlo hay que hacer un commit del fichero añadido

Ejemplo
• $ cvs add LEEME.txt

cvs add: scheduling file ‘LEEME.txt’ for addition
cvs add: use ’cvs commit’ to add this file permanently

• $ cvs add -kb logo.gif

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (II). Checkout

15

Comandos más importantes (II). Checkout

cvs checkout|co|get [opciones] modulos...

Se baja del servidor CVS una copia del módulo o módulos especifica-
dos

Se realiza sólo una vez
• En el resto de ocasiones se harán updates sobre la copia local

Ejemplo
• $ cvs co curso-cvs/curso-cvs.tex

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (III). Commit

16

Comandos más importantes (III). Commit

cvs commit|ci [-lnR] [-m ’msj’ | -f fich] [-r revisión] \\

[ficheros...]

Sube al repositorio los cambios realizados en la copia local

Importante: para poder hacer un commit debemos estar trabajando
sobre la última versión de los archivos que hayamos modificado

Ejemplo
• $ cvs ci -m "Añadido método toString()" Bot.java

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (IV). Diff

17

Comandos más importantes (IV). Diff

cvs diff [-kl] [opciones] [[-r rev1 | -D fecha1] \\

[-r rev2 | -D fecha2]] [ficheros...]

Compara archivos locales con las versiones del repositorio, o bien dos
revisiones entre sí

Como la utilidad diff de Unix/Linux

Ejemplo
• $ cvs diff -r RELEASE_1_0 -r EXPR1
• Compara las diferencias entre los tags RELEASE 1 0 y EXPR1

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (V). Export

18

Comandos más importantes (V). Export

cvs export [-flNnR] [-r rev|-D fecha] [-k flag] \\

[-d dir] modulo...

Extrae los archivos de un módulo para producir una distribución in-
dependente del CVS

Es necesario indicar un tag (-r) o una fecha (-d)

Funciona como checkout, pero no baja los directorios administrativos
CVS

c2002 Álvaro Sánchez-Mariscal

II Curso de introducción a CVS

Comandos más importantes (VI). Import

19

Comandos más importantes (VI). Import

cvs import -m "comentario" nombre-modulo \\

nombre-vendedor nombre-version

Instala un conjunto de archivos en el repositorio

Se mantiene la organización de directorios original

Añade todos los archivos y directorios que se encuentren en el direc-
torio donde se ejecutó el import.

Ejemplo:
$ cvs import -m "Repositorio Prueba" prueba malvarez v0
N prueba/README.txt
cvs import: Importing /home/i5/CVS/is0/prueba/test
N prueba/test/README.txt

No conflicts created by this import

c2002 Álvaro Sánchez-Mariscal

II Curso
  • Links de descarga
http://lwp-l.com/pdf11196

Comentarios de: II Curso de introducción a CVS (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad