© 2004-2006 manuel colladoversiones-1 control de versiones, configuración y cambios vcs: version...

38
© 2004-2006 Manuel Collado Versiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management CMS: Configuration Management System

Upload: francisca-cuevas

Post on 13-Feb-2015

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-1

Control de versiones, configuración y cambios

VCS: Version Control System

SCM: Software Configuration Management

CMS: Configuration Management System

Page 2: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-2

Contenido

Evolución del software Control de versiones Control de configuración Control de cambios Repositorio. Almacenamiento eficiente Ejemplos de herramientas

Page 3: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-3

Evolución del software Durante el desarrollo

El desarrollo del software siempre es progresivo, incluso en el ciclo de vida en cascada

El desarrollo evolutivo consiste, precisamente, en una evolución controlada (ciclo de vida espiral, prototipos evolutivos)

Durante la explotación Durante la fase de mantenimiento se realizan

modificaciones sucesivas del producto

Page 4: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-4

Control de versiones Motivo: evolución

El software cambia con el tiempo Es necesario controlar esta evolución Suele ser necesario recuperar versiones antiguas

Concepto de versión (revisión) Forma particular que adopta un objeto en un

contexto dado Desde el punto de vista de evolución, es la forma

particular de un objeto en un instante dado. Se suele denominar "revisión"

Page 5: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-5

Control de configuración Concepto de configuración

Un sistema software comprende distintos componentes, que evolucionan individualmente

Hay que garantizar la consistencia del conjunto del sistema

Una 'configuración' es una combinación de versiones particulares de los componentes que forman un sistema consistente

Desde el punto de vista de evolución, es el conjunto de las versiones de los objetos componentes en un instante dado

Page 6: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-6

Control de cambios Línea base

Denominaremos así a una configuración operativa del sistema software

La evolución del sistema puede verse como evolución de la línea base

Concepto de cambio Es el paso de una versión de la línea base a la

siguiente Puede incluir modificaciones del contenido de algún

componente Puede incluir modificaciones de la estructura del

sistema, añadiendo o eliminando componentes

Page 7: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-7

Variantes Configuraciones alternativas

Un sistema software puede adoptar distintas formas (configuraciones) dependiendo del lugar donde se instale. Por ejemplo, dependiendo de la plataforma (máquina + S.O.) que la soporta, o de las funciones opcionales que haya de realizar o no

Una variante es una versión de un componente (o de la configuración global) que evoluciona por separado

Las variantes representan una variación espacial, mientras que las revisiones representan una variación temporal

Page 8: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-8

Repositorio Almacenamiento de versiones

Es habitual centralizar el almacenamiento de los componentes de un mismo sistema, incluyendo las distintas versiones de cada componente. Este almacén común se denomina REPOSITORIO

El repositorio permite ahorrar espacio de almacenamiento, evitando guardar por duplicado elementos comunes a varias versiones o configuraciones

El repositorio facilita el almacenar información de la evolución del sistema (historia), y no sólo de los componentes en sí

A veces se confunde el término 'repositorio' con el de 'línea base'

Page 9: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-9

1 2 3 4

Grafo de evolución Revisiones sucesivas de un componente

Page 10: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-10

1.1 1.2 1.3 1.4

2.1 2.2 2.3

3.1 3.2

4.1

TRONCO: Variante principal, p.ej. 1.1-1.2...RAMAS: Variantes secundarias, p.ej: 2.1..., 3.1...DELTA: Cambios de una revisión respecto a la anterior

Delta 3.2 = (3.1 3.2)

Variantes

Page 11: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-11

1.1 1.2 1.3 1.4

2.1 2.2 2.3

3.1 3.2

1.5

2.4

3.3

2.4 = 2.3 + 1.5 - 1.43.3 = 3.2 + 1.5 - 1.4

“Diff-Merge”:

Propagación de cambios

Page 12: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-12

1.1 1.2 1.3 1.4

2.1 2.2 2.3

3.1 3.2

4.1 4.2

Igual que propagación de cambios(o bien, no hay que hacer nada especial)

Fusión de variantes

Page 13: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-13

1.1 1.2 1.3 1.4 1.5

2.1 2.2

1.2 1.3 1.4 1.5

2.1 2.2

Técnicas de almacenamiento Deltas directos

Page 14: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-14

1.2 1.3 1.41.1

2.1 2.2

1.2 1.3 1.41.1

2.1 2.2

1.5

Técnicas de almacenamiento Deltas inversos (RCS)

Page 15: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-15

x x x x xx x x x x

<<1.3,1.2y y y y

>><<1.2

z z z z z zz z z z z z

>>x x x x x

<<1.3t t t

>>x x x x xx x x x x

Técnicas de almacenamiento Marcado selectivo (SCCS)

Page 16: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-16

Control de configuración Evolución de un sistema

Añadir componentes Suprimir componentes Modificar componentes

Evolución temporal (revisiones) Cambio a lo largo del tiempo

Evolución espacial (variantes) Versiones simultáneas

Page 17: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-17

A

A

A

A

B

B

B C

C

C

C D

D

D

E

Rev. 1

Rev. 2

Rev. 3

Rev. 4

Ejemplo de evolución de configuración

Page 18: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-18

Problema de coherencia de versiones

A1

A2

B2

B1

C1

C2

D2

D1

E1

Rev. 1

Rev. 2

Rev. 3

Rev. 4

Page 19: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-19

Problema de coherencia de versiones

A1Rev. 1

Rev. 2

Rev. 3

Rev. 4 A2

A2

A1

B2

B2

B1 C1

C1

C1

C2

D1

D2

D2 D2

Page 20: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-20

Modelo ortogonal de versiones

A B C D E

componentes

1

2

3

4

revisiones

XY

Zvariantes

Ejemplo de nombrado uniforme: B-X-3 B 1.2

1.2

1.1

1.21.1

2.1

2.2

2.3

1.2 1.1

1.1

1.1

1.1

1.1

1.2

1.1

1.1

1.2

1.2

1.2

---

---

------

---

Page 21: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-21

Técnicas de nombres en configuraciones Traducción externa

Usar un control de versiones, añadiendo el mecanismo adecuado para nombrar globalmente las versiones de componentes de una configuración dada

Nombres simbólicos (“tags”) Usados por RCS. Una misma versión de un

componente puede tener varios nombres o tags (p.ej: “Linux 2.0”, “Linux 2.1”, “Win2K 1.0” ...)

Versiones de directorios Ejemplos: CVS, ClearCase. La configuración se

organiza mediante una jerarquía de directorios, cuyo contenido evoluciona

Page 22: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-22

A1 B1 C1 D1 E1

A2 B2

Cambio 1

Cambio 2

Línea base

Desarrollo mediante cambios sucesivos

Evolución de la línea base

Page 23: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-23

A1 B1 C1 D1 E1

A2 B2

Cambio 1

Cambio 2

Línea base

Desarrollo mediante cambios sucesivos

Evolución de la línea base

Page 24: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-24

Desarrollo mediante cambios sucesivos

Evolución de la línea base

A1 B1 C1 D1 E1

A2 B2

Cambio 1

Cambio 2

Línea base

D E3 F3Cambio 3

Page 25: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-25

Desarrollo mediante cambios sucesivos

Evolución de la línea base

A1 B1 C1 D1 E1

A2 B2

E3 F3

Cambio 1

Cambio 2

Línea base

Cambio 3

Page 26: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-26

Desarrollo simultáneo de cambios Cambios 2 y 3 en desarrollo

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2 D E3 F3

Cambio 3

Page 27: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-27

Desarrollo simultáneo de cambios Cambio 2 integrado

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

D E3 F3Cambio 3

Page 28: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-28

Desarrollo simultáneo de cambios Cambio 3 actualizado

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

D E3 F3Cambio 3

Page 29: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-29

Desarrollo simultáneo de cambios Cambio 3 integrado

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

E3 F3Cambio 3

Page 30: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-30

Cambios simultáneos de un componente

Cambios 2 y 3 en desarrollo

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2 D3 E3 F3

Cambio 3

D2

Page 31: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-31

Cambios simultáneos de un componente

Cambio 2 integrado

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

D3 E3 F3Cambio 3

D2

Page 32: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-32

Cambios simultáneos de un componente

Cambio 3 actualizado

D3’ = D3 + D2 - D1

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

D3’ E3 F3Cambio 3

D2

Page 33: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-33

Cambios simultáneos de un componente

Cambio 3 integrado

Cambio 1

Cambio 2

Línea base

A1 B1 C1 D1 E1

A2 B2

E3 F3Cambio 3

D2

D3’

Page 34: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-34

Ejemplos de herramientas

SCCS (Source Code Control System) Control básico de versiones, original de UNIX

RCS (Revision Control System) Herramienta similar, GNU

CVS (Concurrent Version System) Control de configuración, cambios simultáneos

Subversion Similar a la anterior, más moderna

Gnuarch, etc.

Page 35: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-35

fichero,v

ficheroficheroRO RW

co -lco

ci

rlog

Control de versiones: herramienta RCS

Page 36: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-36

Control de configuración: herramienta CVS

CVSROOT

add remove

checkout

commit

(update)

edit

abort

Page 37: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-37

Ciclo de vida de cambios: Aegis

Esperando desarrollo

En integración

Completado

En desarrollo

Anular

Anular

Anular

En revisión

Esperando integración

Nuevo cambio

Inicio desarrollo

Fin desarrollo

Revisión aceptada

Rechazo

RechazoIntegraciónaceptada

Page 38: © 2004-2006 Manuel ColladoVersiones-1 Control de versiones, configuración y cambios VCS: Version Control System SCM: Software Configuration Management

© 2004-2006 Manuel Collado

Versiones-38

Control de cambios: herramienta Aegis

Directoriode cambio

Directoriode cambio

Directorio deintegración

Directorio delínea base

Repositorio(historia)