Академический Документы
Профессиональный Документы
Культура Документы
Gestin de configuracin
Control de versiones, configuracin y cambios
1. Introduccin
En este tema se describen las actividades bsicas de gestin de configuracin y las tcnicas
y herramientas utilizadas para ello. La terminologa empleada para referirse a esta actividad
vara segn los casos. Por ejemplo:
VCS: Version Control System
SCM: Software Configuration Management
CMS: Configuration Management System
Control:
Se dispone de medios para realizar materialmente una tarea de manera segura.
Gestin:
Hay criterios establecidos que hay que seguir en la realizacin de una tarea.
Gestin de configuracin - 1
Gestin de configuracin
Durante la explotacin
o
Suele ser necesario recuperar versiones antiguas, aunque sea slo para
consulta
Gestin de configuracin - 2
Gestin de configuracin
3. Conceptos generales
Control de versiones
o
Evolucin de un elemento.
Control de configuracin
o
Control de cambios
o
Revisiones y variantes
o
Configuraciones alternativas.
Branch-merge.
Repositorio
o
Gestin de configuracin
Concepto de cambio
o
3.4 Variantes
Configuraciones alternativas
o
Las variantes representan una variacin espacial, mientras que las revisiones
representan una variacin temporal.
3.5 Repositorio
Es un almacn general de versiones:
o
Gestin de configuracin - 4
Gestin de configuracin
4. Control de versiones
Como se ha dicho, se refiere a la evolucin de un nico elemento, o de cada elemento por
separado si son varios.
La evolucin puede representarse grficamente en forma de grafo, en el que los nodos son
las versiones y los arcos corresponden a la creacin de una nueva versin a partir de otra
ya existente.
Esta forma de evolucin no presenta problemas desde el punto de vista de organizacin del
repositorio. Las versiones se pueden designar simplemente mediante nmeros correlativos,
como en la figura.
4.2 Variantes
Cuando hay variantes, es decir, cuando existen simultneamente varias versiones del
componente, el grafo de evolucin ya no es una secuencia lineal, sino que adopta la forma de
un rbol. Si queremos seguir numerando las versiones se necesitar ahora una numeracin
a dos niveles. El primer nmero designa la variante (lnea de evolucin), y el segundo la
versin particular (revisin) a lo largo de dicha variante.
La terminologa usada para referirse a los elementos del grafo es la propia de un rbol:
TRONCO (trunk): Es la variante principal, p.ej. 1.1-1.2...
CABEZA (head): Es la ltima versin del tronco, p.ej. 1.4
RAMAS (branches): Son las variantes secundarias, p.ej: 2.1..., 3.1...
DELTA (delta): Es el cambio de una revisin respecto a la anterior. El nombre delta
puede aplicarse a varios conceptos. Ejemplo, Delta 3.2 puede representar:
Gestin de configuracin - 5
Gestin de configuracin
o
El paso de una versin a otra, es decir, un arco del grafo: (3.1 3.2)
Gestin de configuracin - 6
Gestin de configuracin
Para fundir variantes se puede operar de forma similar a la propagacin de cambios,
aplicando a una rama los cambios independientes hechos en la otra. Por ejemplo:
4.1 = 2.3 + (3.2 - 2.2),
4.1 = 3.2 + (2.3 - 2.2)
o bien
Ventajas: Es menos costoso recuperar las ltimas versiones que las primeras, pero
slo en el tronco o rama principal.
Gestin de configuracin - 7
Gestin de configuracin
Inconvenientes: En las otras ramas es ms costoso recuperar las ltimas versiones
que si se aplicaran slo deltas directos.
Marcado selectivo (SCCS): Se almacena el texto refundido de todas las versiones
como una secuencia lineal, marcando cada seccin del conjunto con los nmeros
de versiones a los que corresponde. Usando una notacin simblica tendramos, por
ejemplo:
x x x x
x x x x
<<1.3,1.2
y y y y
>>
<<1.2
z z z z
z z z z
>>
x x x x
<<1.3
t t t
>>
x x x x
x x x x
x
x
z z
z z
x
x
x
Ventajas: Cuesta lo mismo recuperar cualquier versin, tanto reciente como antigua
y de cualquier rama.
Inconvenientes: A medida que aumenta el nmero de versiones aumenta tambin el
costo de recuperar cualquier de ellas.
Gestin de configuracin - 8
Gestin de configuracin
rlog
co
fichero,v
co -l
RO
fichero
RW
ci
fichero
Gestin de configuracin - 9
Gestin de configuracin
5. Control de configuracin
Como se ha dicho antes, aplicaremos esta denominacin al control de la evolucin de un
conjunto de elementos.
La evolucin del sistema consiste en:
o
Aadir componentes
Suprimir componentes
Modificar componentes
Reorganizar la estructura
Gestin de configuracin - 10
Gestin de configuracin
O bien, dibujando repetidas las versiones que se mantienen sin cambios en cada revisin
del conjunto:
Como puede verse la numeracin de las versiones individuales no tiene una relacin sencilla
con la numeracin de las versiones del conjunto. Hace falta mantener una tabla o ndice
que asocie cada versin del conjunto con las versiones individuales de sus componentes.
Subversion:
o
Ha desplazado a CVS.
Gestin de configuracin - 11
Gestin de configuracin
Git:
o
Gestin de configuracin - 12
Gestin de configuracin
Gestin de configuracin - 13
Gestin de configuracin
Gestin de configuracin - 14
Gestin de configuracin
Gestin de configuracin - 15
Gestin de configuracin
Integracin del Cambio 2
Gestin de configuracin - 16
Gestin de configuracin
7. Control de cambios
La ingeniera de software recomienda realizar el desarrollo de manera disciplinada. Las
herramientas de control de versiones no garantizan un desarrollo razonable si cualquier
miembro del equipo puede realizar los cambios que quiera e integrarlos en el repositorio
sin ningn tipo de control.
Gestin de configuracin - 17
Gestin de configuracin
Gestin de configuracin - 18