Metodologia para trabajar en SVN

Anuncio
PROTOCOLO PARA TRABAJAR CON REPOSITORIOS SVN POR
MEDIO DE RAMAS
Autores:
MARIA CONSUELO FRANKY
JOHN EDDIE DÍAZ AGUDELO
JUAN FELIPE OLAYA
PONTIFICIA UNIVERSIDAD JAVERIANA
DEPARTAMENTO DE INGENIERÍA DE SISTEMAS
CARRERA DE INGENIERÍA DE SISTEMAS
BOGOTÁ D.C.
2010.
Tabla de Contenido
1
PRELIMINARES ..................................................................................................................................................... 3
1.1
1.2
1.3
2
INSTALACIÓN Y ADMINISTRACION DE SUBVERSION ............................................................................. 4
2.1
2.2
2.3
2.4
3
DISCIPLINA DE TRABAJAR EL TRONCO O LA RAMA COMO UN TODO.................................................................... 7
REGISTRAR BUENOS COMENTARIOS CON LOS COMANDOS SUBVERSION ............................................................. 7
MINIMIZAR LOS CONFLICTOS EN LA INTEGRACIÓN DE LAS RAMAS AL TRONCO .................................................. 7
PROTOCOLO DE TAREAS .................................................................................................................................. 9
4.1
4.2
4.3
4.4
5
INSTALACIÓN DE SUBVERSION........................................................................................................................... 4
CREACIÓN DE UN REPOSITORIO SUBVERSION..................................................................................................... 4
ADMINISTRACIÓN DE USUARIOS, PERMISOS Y BACKUPS DE UN REPOSITORIO SUBVERSION ................................ 5
INSTALACIÓN DEL PLUGIN SUBVERSION PARA ECLIPSE ...................................................................................... 6
RECOMENDACIONES IMPORTANTES ............................................................................................................ 7
3.1
3.2
3.3
4
ENTRADAS ......................................................................................................................................................... 3
CRITERIOS DE EJECUCIÓN .................................................................................................................................. 3
TÉRMINOS USADOS ............................................................................................................................................ 3
TAREAS DEL ADMINISTRADOR PARA CREAR UNA NUEVA RAMA......................................................................... 9
TAREAS DEL DESARROLLADOR PARA TRABAJAR EL REQUERIMIENTO EN LA RAMA.......................................... 12
TAREAS DEL RESPONSABLE DE HACER PRUEBAS SOBRE UNA RAMA ................................................................. 15
TAREAS DEL ADMINISTRADOR PARA INTEGRAR LA RAMA AL TRONCO ............................................................. 16
LIBERACIÓN DE CAMBIOS .............................................................................................................................. 19
5.1
5.2
5.3
5.4
VERIFICACIÓN ................................................................................................................................................. 19
METRICS .......................................................................................................................................................... 19
CRITERIO DE FINALIZACIÓN ............................................................................................................................. 19
SALIDAS .......................................................................................................................................................... 19
pg. 2
1 PRELIMINARES
1.1 ENTRADAS


Requerimiento de hacer una modificación o una extensión a un repositorio Subversion.
Nombre del desarrollador (o desarrolladores) que tiene a cargo el requerimiento.
1.2 CRITERIOS DE EJECUCIÓN



Orden de realizar el requerimiento por parte de los arquitectos.
Los desarrolladores deben estar registrados como usuarios ante el repositorio.
Teniendo en cuenta que la raíz del repositorio corresponde al directorio tiggerRummy, los
desarrolladores deben hacer checkout del proyecto correspondiente al subdirectorio
tiggerRummy/technical (en lo sigue se asume que éste es el tronco y proyecto de referencia; un
proyecto diferente tendrá otro subdirectorio como su tronco).
1.3 TÉRMINOS USADOS

Versión: Estado de un conjunto de clases (y de otro tipo de archivos) que forman un sistema o
componente. El conjunto de clases forman una versión en un momento dado.

Versión en producción: Es una versión de un sistema o componente que se encuentra disponible para
el uso de usuarios finales.

Versión en desarrollo: Versión de un sistema o componente que está sufriendo modificaciones por
mejoras o correcciones, aún no está disponible para producción.

Tronco: Es un término equivalente a la versión estable oficial de desarrollo.

Rama (Branch): Versión de desarrollo paralela a la versión oficial (tronco) que se trabaja hasta tenerla
lista para salir a pruebas y posterior producción. Ambas versiones, la oficial y la rama comparten un
ancestro común y están destinadas a converger en el futuro cercano. Para múltiples desarrollos
paralelos se debe crear una rama para cada uno de ellos y luego integrarlos secuencialmente al tronco.

Etiqueta (Tag): Copia de la versión oficial tomada en cierto momento. A diferencia de las ramas, las
versiones con etiquetas no deberían sufrir modificaciones.

Directorios del tronco, de ramas y de etiquetas: para el repositorio tiggerRummy se tienen los
siguientes directorios:
o tiggerRummy/technical: Directorio del tronco
o tiggerRummy/branches: Directorio de ramas
o tiggerRummy/tags: Directorio de etiquetas
pg. 3
2 INSTALACIÓN Y ADMINISTRACION DE SUBVERSION
2.1 INSTALACIÓN DE SUBVERSION
Generalmente Subversion ya viene instalado en varios sistemas Linux, por ejemplo CentOS 5.x y
superior.
Los ambientes de desarrollo colaborativos SourceForge y GForge también instalan Subversion (y
CVS).
2.2 CREACIÓN DE UN REPOSITORIO SUBVERSION
Suponiendo que el directorio raíz de instalación de Subversion es: /datos/svn.repository/
la creación del repositorio tiggerRummy (para el proyecto TiggerRummy) se realiza mediante el
comando create de Subversion, de la siguiente manera:
cd /datos/svn.repository/
svnadmin create tiggerRummy
Para que el repositorio tiggerRummy pueda accederse por la web, debe configurarse Apache
editando el archivo: /etc/httpd/conf.d/subversion.conf, añadiendo la siguiente
sección (en donde se indica los nombres del archivo de permisos y de passwords):
<Location /tiggerRummy>
DAV svn
SVNPath /datos/svn.repository/tiggerRummy
#
# Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Repository"
AuthUserFile
/datos/svn.repository/tiggerRummy.htpasswd
AuthzSVNAccessFile
/datos/svn.repository/tiggerRummy.permission
Require valid-user
# </LimitExcept>
</Location>
pg. 4
2.3 ADMINISTRACIÓN
DE USUARIOS, PERMISOS Y BACKUPS DE UN REPOSITORIO
SUBVERSION
La persona encargada de las labores administrativas del repositorio, puede remitirse al manual de
Subversion: “version control with subversión.pdf” localizado en la siguiente ubicación dentro del
CD de ConstruColectiva:
/Guia/Anexos/version control with subversión.pdf
Es importante restringir en los permisos que solo usuarios con el rol de administrador puedan
modificar el tronco del repositorio (para creación e integración de nuevas ramas al tronco).
Los comandos más frecuentes se ilustran a continuación:

Definición de permisos para el repositorio tiggerRummy: editar el archivo
/datos/svn.repository/tiggerRummy.permission siguiendo las instrucciones
del manual.

Crear el archivo tiggerRummy.htpasswd de passwords con el password de un primer
usuario:
htpasswd -cm tiggerRummy.htpasswd jperez

Para agregar el password de otro usuario o cambiar un password existente:
htpasswd -mb tiggerRummy.htpasswd jperez elpassword

Para eliminar un usuario:
htpasswd -D tiggerRummy.htpasswd jperez

Producir un backup mediante dump (exportación):
cd /datos/svn.repository/
svnadmin dump /datos/svn.repository/tiggerRummy > tiggerRummy2009-12-30.dmp
Este backup puede importarse a un repositorio vacío (en la misma máquina o en otra
máquina):
svnadmin create newtiggerRummy
svnadmin load newtiggerRummy < tiggerRummy-2008-03-30.dmp
pg. 5
2.4 INSTALACIÓN DEL PLUGIN SUBVERSION PARA ECLIPSE
Como cliente para interactuar con Subversion se puede utilizar el programa TortoiseSVN (cliente
web; ver http://tortoisesvn.tigris.org/) o el plugin para Eclipse: Subclipse. En este documento se
darán instrucciones suponiendo que los desarrolladores tienen instalado el plugin para Eclipse.
Para instalar el plugin de Subversion para Eclipse se deben seguir las instrucciones que se
encuentran en la página web: http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA
A continuación se resumen los puntos importantes de esta instalación:
1- En Eclipse entrar por updates >> find and install >> search for new features
2- Definir New remote site:
Name: Subclipse
corresponde a: 1.2.x (Eclipse 3.2+)
URL: http://subclipse.tigris.org/update_1.2.x
3- Instalar y reiniciar Eclipse
4- Abrir perspectiva: SVN
(Podrían integrarse las ventanas de esta perspectiva a la perspectiva Team)
5- Definir acceso a repositorio Subversion:
Indicar URL, usuario/password
Ejemplo: http://197.0.2.24/tiggerRummy
http://197.0.2.24/tiggerRummy/processes
6- Sobre el repositorio definido hacer checkout creando nuevo proyecto en Eclipse.
pg. 6
3 RECOMENDACIONES IMPORTANTES
3.1 DISCIPLINA DE TRABAJAR EL TRONCO O LA RAMA COMO UN TODO
Para evitar inconsistencias tanto en el tronco como en cualquiera de las ramas que se creen es
necesario realizar los comandos de Subversion a nivel de todo el tronco o de toda la rama que se esté
trabajando:





El checkout inicial del proyecto debe tomar todo el tronco.
Toda rama o etiqueta representa una copia de todo el tronco. La copia correspondiente a una etiqueta
no se modifica para que corresponda a una versión congelada del tronco.
Para cambios hechos en una rama debe hacerse un commit de toda la rama y no de archivos
individuales.
Los comandos de integración deben llevar los cambios ocurridos en todo el tronco hacia una rama o
integrar toda una rama hacia el tronco. Después de estas integraciones debe hacerse un commit de toda
la rama o de todo el tronco, según el caso.
Las etiquetas representan versiones del tronco antes de la creación de una rama; también antes y
después de la integración de la rama al tronco.
3.2 REGISTRAR BUENOS COMENTARIOS CON LOS COMANDOS SUBVERSION
Los comandos Subversion requieren un comentario. Para los comandos de creación de ramas,
etiquetas e integraciones se recomienda configurar o seleccionar los templates de comentarios que
ya están configurados, como son los siguientes:







TAG of trunk before creating branch.XX
BRANCH branch.XX creation for <purpose>
TAG of trunk before integrating branch.XX
TAG of trunk after integrating branch.XX
INTEGRATION: confirming integration of branch.XX to the trunk
INTEGRATION: confirming integration of trunk to the branch.XX
NEW INSTALLER: version XXX
Durante el desarrollo de una rama se recomienda hacer commits frecuentes para hacer visibles los
cambios a los otros desarrolladores de la rama. El comentario de un commit debe indicar la
naturaleza de cada cambio que se está registrando (ej: fixing problem of XXX template with MySQL
database for inserting BLOB data) en lugar de un comentario genérico que no da información (ej:
“fixing problem”).
3.3 MINIMIZAR LOS CONFLICTOS EN LA INTEGRACIÓN DE LAS RAMAS AL TRONCO
Después de cada integración de una rama al tronco, el administrador debe avisar para que todos los
desarrolladores actualicen sus ramas activas integrando el tronco hacia cada rama. De esta manera
las ramas se mantienen actualizadas respecto al tronco y se reduce la probabilidad de que ocurran
conflictos en la integración de una próxima rama al tronco.
pg. 7
Para cada integración de una rama al tronco debe obtenerse el log de integración y agregarle como
se resolvieron los conflictos, si los hubo. El administrador envía este log al responsable de la rama
integrada para que confirme si fue correcta la resolución de conflictos.
Otra práctica adicional para minimizar conflictos es que el administrador no integre varias ramas al
tronco en forma consecutiva sino que permita después de cada integración que los desarrolladores
actualicen sus ramas activas, antes de proceder a una siguiente integración de otra rama al tronco.
En general no deberían hacerse cambios sobre una rama que ya ha sido integrada al tronco.
pg. 8
4 PROTOCOLO DE TAREAS
4.1 TAREAS DEL ADMINISTRADOR PARA CREAR UNA NUEVA RAMA
El desarrollador (o grupo de desarrolladores) que tiene a cargo el requerimiento de hacer una
modificación o extensión al proyecto TiggerRummy, debe solicitar al Administrador del repositorio
la creación de una rama a partir del tronco (por política de permisos solo usuarios con rol
administrador en el repositorio pueden crear ramas).
TAREA
RESPONSABLE
ACLARACIONES
Comandos desde el cliente de
Subversion en Eclipse
1- TOMAR EL TRONCO
ACTUALIZADO:
Si es la primera vez que se
toma el proyecto
correspondiente al tronco:


Conectarse al
repositorio:
http://197.0.2.24/tigger
Rummy /technical
(cambiar el IP a
190.25.225.157 por
fuera de la red local)
Aplicar al repositorio asociado al tronco
el comando Checkout
Administrador del
repositorio
No debería haber
cambios pendientes
sobre el tronco,
suponiendo que todo
cambio se maneja en una
rama.
Hacer un checkout de
este repositorio
Aplicar al proyecto el comando Team >
Update
Si ya se tiene el proyecto
correspondiente al tronco:

Hacer un update del
proyecto
2MARCAR LA VERSION
ACTUAL DEL TRONCO
CON UNA ETIQUETA
Administrador del
repositorio
Con la etiqueta se logra
tener una versión de
referencia de cómo
estaba el tronco antes de
la extensión o
modificación.
Para crear una etiqueta
se necesita rol de
administrador.
Averiguar cuál es la revisión actual del
repositorio mediante el comando: Show
History, usado en la vista SVN
Repository (notar que es la revisión del
repositorio
tiggerRummy/
y
no
únicamente
del
tronco
tiggerRummy/technical/ pues se quiere
tener en cuenta todas las revisiones del
tronco, de las ramas y de las etiquetas).
Aplicar al proyecto el comando Team >
Branch/Tag :
En el FROM indicar el URL del tronco:
http://197.0.2.24/tiggerRummy /technical
En el TO indicar el URL de la nueva
etiqueta, por ejemplo:
pg. 9
http://197.0.2.24/tiggerRummy/tags/5.81.00
Observar que existe un subdirectorio tags
(al mismo nivel del tronco) destinado a
reunir las versiones etiquetadas del
tronco.
Cada etiqueta
compuesto de :
recibe
un
nombre
[version].[revision].[bugs arreglados]
Donde :
[version] Es la versión mayor del
framework, actualmente 5
[revision] Es la revisión actual del tronco
[bugs arreglados] Es el número de bugs
arreglados en la versión del tronco
asociada a esta etiqueta; solo será
diferente de 00 cuando se marque una
etiqueta al integrar al tronco una rama en
la que se arregló algún problema.
En el ejemplo 5.81.00 nos referimos a la
versión mayor 5, revision 81 con 0 bugs
arreglados.
Dejar seleccionado HEAD revision para
que la etiqueta tome el estado actual del
tronco.
El comentario asociado a la etiqueta debe
comenzar por la palabra TAG e indicar
que es la versión antes de crear la rama
en donde se hará el cambio (por ejemplo:
“TAG of trunk before creating
branch.DB2”).
Aplicar al proyecto el comando Team >
Branch/Tag
En el FROM indicar el URL del tronco:
http://197.0.2.24/tiggerRummy /technical
3- ABRIR UNA RAMA A
PARTIR DEL TRONCO:
Administrador del
repositorio
Sólo un usuario
administrador crea la
rama.
En el TO indicar el URL de la nueva
rama, por ejemplo:
http://197.0.2.24/tiggerRummy/branches
/branch.DB2
Observar que existe un subdirectorio
branches (al mismo nivel del tronco)
destinado a reunir las ramas etiquetadas
del tronco.
Cada rama recibe el nombre branch.X.X
pg. 10
donde XX es el nombre abreviado del
requerimiento.
Dejar seleccionado HEAD revision para
que la etiqueta tome el estado actual del
tronco.
El comentario asociado a la rama debe
comenzar por la palabra BRANCH y
debe describir el requerimiento que se va
a desarrollar usando la rama.
(Por ejemplo: “BRANCH branch.DB2
creation for supporting DB2 modifying
DAO and ROE assistants”)
En la segunda página confirmar la
creación de la rama dejando seleccionado
que es un Branch.
pg. 11
4.2 TAREAS DEL DESARROLLADOR PARA TRABAJAR EL REQUERIMIENTO EN LA RAMA
Si el desarrollador (o grupo de desarrolladores) que tiene(n) a cargo el requerimiento de hacer una
modificación o extensión al proyecto tiggerRummy realiza las siguientes tareas sobre la rama.
TAREA
RESPONSABLE
ACLARACIONES
Comandos desde el cliente de
Subversion en Eclipse
No se debe hacer una rama
cuando
hay
cambios
pendientes sobre el tronco.
Si es el caso, se debe hacer
commit sobre el tronco
para aplicar los cambios y
luego update.
Aplicar al repositorio asociado al tronco el
comando Checkout
1- TOMAR EL TRONCO
ACTUALIZADO:
Si es la primera vez que se
toma el proyecto
correspondiente al tronco:

Conectarse
al
repositorio
http://197.0.2.24/tigger
Rummy
/technical
(cambiar el IP a
190.25.225.157
por
fuera de la red local)

Hacer un checkout de
este repositorio
El
desarrollador
(o grupo de
desarrolladores
a cargo).
Aplicar al proyecto el comando Team >
Update
Si ya se tiene el proyecto
correspondiente al tronco:

Hacer un update del
proyecto
2- SELECCIONAR LA
RAMA A TRABAJAR
Antes de hacer los cambios
asociados al requerimiento
se debe seleccionar como
proyecto, el asociado a la
rama.
Cada
desarrollador
del grupo que
está a cargo del
cambio.
Aplicar al proyecto el comando Team >
Switch to another Branch/Tag
y escoger el URL asociado a la rama, por
ejemplo:
http://197.0.2.24/tiggerRummy/branches
/branch.DB2
(Dejar seleccionado HEAD revision para ir
al estado actual de la rama)
pg. 12
3- TRABAJAR EN LA
RAMA
A medida que se trabaja en
la rama para realizar la
extensión o modificación
requerida, el desarrollador
debe hacer periódicamente
las siguientes acciones:
a)
Incorporar
los
últimos cambios del
tronco hacia la
rama.
b) Modificaciones y
pruebas de la rama.
c)
En caso de éxito de
las
pruebas,
publicar
los
cambios
en
el
repositorio
haciendo commit de
la rama (no se
afecta el tronco).
El
desarrollador (o
grupo de
desarrolladores
a cargo).
Mientras se construye en la
rama la extensión o
modificación
del
framework no se afecta el
tronco pero sí se tienen en
cuenta los cambios que va
teniendo el tronco.
Al incorporar los cambios
del tronco hacia la rama
pueden surgir conflictos
sobre la rama, los cuales
deben resolverse.
Cuando
son
varios
desarrolladores
en
la
misma
rama,
eventualmente
deben
resolver conflictos entre
ellos cuando hacen commit
en la rama (después de
resolver conflictos utilizar
los comandos commit y
update).
OJO: Tener cuidado de
incorporar cambios del
tronco hacia la rama y no
al revés, colocando un
rango
de
versiones
referentes al tronco.
PARA INCORPORAR CAMBIOS DEL
TRONCO HACIA LA RAMA:
Averiguar cuál es la versión del tronco
correspondiente a la creación de la rama,
mediante el comando Team >Show History
Aplicar al proyecto el comando Team >
Merge : se quiere incorporar a la rama
todos los cambios ocurridos en el tronco
desde la creación de la rama; indicar ese
rango así:
En el From indicar el URL del tronco, por
ejemplo:
http://197.0.2.24/tiggerRummy/technical
y como revisión colocar la correspondiente
a la creación de la rama.
En el To dejar seleccionado “Use From
URL”
y escoger “Head revision”
(significa la versión actual que tiene el
tronco).
Finalmente oprimir el botón “Merge”.
En caso de que resulten archivos con
conflictos (la lista de estos archivos se
indica en la consola ), se debe seleccionar
cada archivo en conflicto y realizar las
siguientes acciones:

Resolver sus conflictos con el
comando Team > Edit conflicts
(para cada conflicto se puede editar el
texto izquierdo que representa el
estado en la máquina del desarrollador,
reemplazar el texto izquierdo por el
derecho que representa el estado en el
repositorio, agregar el texto derecho; al
final debe guardarse el texto izquierdo
para que quite las marcas de conflicto)

Marcar el archivo como resuelto con el
comando Team > Mark Resolved
Cuando se resuelvan todos los conflictos
debe hacerse commit de toda la rama.
NOTA: Las siguientes veces que se
incorporen cambios del tronco hacia la
rama, puede restringirse el rango de
cambios, indicando en el From la version
del tronco que ya se incorporó la última
vez. Utilizar el botón “Show log” para
obtener la lista de versiones del tronco.
pg. 13
4- FIN DEL TRABAJO
EN LA RAMA
Cuando la extensión o
modificación está lista en la
rama, el desarrollador hace
la última incorporación de
cambios del tronco hacia la
rama + pruebas + commit
de la rama y solicita que el
Comité TiggerRummy
incorpore la rama al tronco.
El
desarrollador (o
grupo de
desarrolladores
a cargo) hace la
solicitud al
Comité
TiggerRummy
a través de la
persona que
coordine.
Es el Comité del proyecto
TiggerRummy
el
responsable de modificar el
tronco del proyecto.
pg. 14
4.3 TAREAS DEL RESPONSABLE DE HACER PRUEBAS SOBRE UNA RAMA
Se recomienda que el responsable de hacer pruebas de una rama sea una persona diferente del desarrollador
que trabajó en la rama. Para hacer las pruebas se deben utilizar los siguientes comandos:
TAREA
RESPONSABLE
ACLARACIONES
Comandos desde el cliente de
Subversion en Eclipse
1- TOMAR EL TRONCO
ACTUALIZADO:
Si es la primera vez que se
toma el proyecto
correspondiente al tronco:


Conectarse al
repositorio
http://197.0.2.24/tigger
Rummy /technical
(cambiar el IP a
190.25.225.157 por
fuera de la red local)
Probador
No se debe hacer una
rama cuando hay
cambios
pendientes
sobre el tronco. Si es
el caso, se debe hacer
commit sobre el tronco
para
aplicar
los
cambios
y
luego
update.
Aplicar al repositorio asociado al tronco el
comando Checkout
Hacer un checkout de
este repositorio
Aplicar al proyecto el comando Team > Update
Si ya se tiene el proyecto
correspondiente al tronco:

Hacer un update del
proyecto
El probador
comandos:
2- PRUEBAS DE LA
RAMA
Idealmente el probador debe
ejecutar un deck de pruebas
de regresión (sobre la rama)
que garanticen la
compatibilidad hacia atrás.
Probador
El probador trabaja en
la rama para hacer las
pruebas.
utilizará
los
siguientes
Para seleccionar la rama como el proyecto a
trabaja: aplicar al proyecto el comando:
Team > Switch to another Branch/Tag
y escoger el URL asociado a la rama
(Dejar seleccionado HEAD revision para ir al
estado actual de la rama)
NOTA: Si las pruebas se demoran varios días,
se recomienda incorporar los últimos cambios
del tronco hacia la rama como se indica en la
sección 4.2. Tareas del desarrollador .
pg. 15
4.4 TAREAS DEL ADMINISTRADOR PARA INTEGRAR LA RAMA AL TRONCO
El Administrador es el responsable de modificar el tronco del proyecto, integrando cada rama probada al
tronco.
TAREA
RESPONSABLE
ACLARACIONES
Comandos desde el cliente de
Subversion en Eclipse
1- TOMAR EL TRONCO
ACTUALIZADO:
Si es la primera vez que se
toma el proyecto
correspondiente al tronco:

Conectarse al
repositorio
http://197.0.2.24/tigger
Rummy /technical
(cambiar el IP a
190.25.225.157 por
fuera de la red local)

Aplicar al repositorio asociado al tronco el
comando Checkout
Administrador
del repositorio
No debería haber
cambios pendientes
sobre el tronco,
suponiendo que todo
cambio se maneja en
una rama.
Hacer un checkout de
este repositorio
Aplicar al proyecto el comando Team > Update
Si ya se tiene el proyecto
correspondiente al tronco:

Hacer un update del
proyecto
El Comité de TiggerRummy utilizará los
siguientes comandos:
2- EL
ADMIINISTRADOR
INTEGRA LA RAMA AL
TRONCO
Con la etiqueta del
tronco antes de
integrar la rama se
logra tener una versión
de referencia de cómo
estaba el tronco antes
de la integración.
Si las pruebas de regresión
sobre la rama salieron
exitosas, el Administrador
realiza
las
siguientes
acciones:
a)
Selecciona el tronco
como el proyecto a
trabajar
b) Marca
con
una
etiqueta el tronco
(antes de integración)
c)
Integra la rama al
tronco,
resolviendo
posibles conflictos
d) Marca
etiqueta
con
una
el tronco
Administrador
del repositorio
Con la etiqueta del
tronco después de
integrar la rama se
obtiene la nueva
versión del tronco.
NOTA: se necesita rol
administrador para
crear etiquetas

Si se necesita seleccionar el tronco como el
proyecto a trabajar: usar el comando Team
> Switch to another Branch/Tag
y escoger el URL asociado al tronco
por ejemplo:
http://197.0.2.24/tiggerRummy/technical
(dejar seleccionado HEAD revision para ir
al estado actual del tronco)

Para poner etiquetas sobre el tronco: con el
comando Team > Branch/Tag
En el FROM indicar el URL del tronco:
http://197.0.2.24/tiggerRummy /technical
En el TO indicar el URL de la nueva
etiqueta, por ejemplo:
http://197.0.2.24/tiggerRummy/tags/5.90.00
donde el nombre de la etiqueta se compone
de:
pg. 16
(después
integración)
de
[version].[revision]
.[bugs arreglados]
La revisión actual del repositorio
tiggerRummy/
debe averiguarse antes
mediante el comando Show History usado
en la vista SVN Repository
Dejar seleccionado HEAD revision para
que la etiqueta tome el estado actual del
tronco.
El comentario asociado a la etiqueta debe
comenzar por la palabra TAG e indicar que
es la versión antes o después de integrar la
rama al tronco (por ejemplo: “TAG of
trunk before integrating branch.DB2”)

Para integrar la rama hacia el tronco: con el
comando Team > Merge
En el From indicar el URL de la rama, por
ejemplo:
http://197.0.2.24/tiggerRummy/branches
/branch.DB2
Y como revisión colocar la correspondiente
a la creación de la rama (utilizar el botón
“Show log” para obtener la lista de
versiones de la rama: utilizar el botón “Get
All” para obtener la lista total).
En el To dejar seleccionado “Use From
URL”
y escoger “Head revision”
(significa la versión actual que tiene la
rama).
Finalmente oprimir el botón “Merge”. En
caso de que resulten archivos con conflictos
(la lista de estos archivos se indica en la
consola), se debe seleccionar cada archivo y
realizar la siguientes acciones:
o
Resolver sus conflictos con el
comando Team > Edit conflicts·(el
editor de conflictos muestra en
la parte izquierda la versión del
tronco y en la parte derecha la
versión de la rama).
o
Marcar el archivo como resuelto
con el comando Team > Mark
Resolved
Así no haya conflictos, de todas maneras
debe marcarse como resuelto todo el
proyecto con el comando Team > Mark
pg. 17
Resolved y proceder a hacer commit (de
todo el proyecto).
El comentario del commit debe indicar que
se integró la rama al tronco, por ejemplo:
“INTEGRATION: confirming integration
of branch.DB2 to the trunk”
pg. 18
5 LIBERACIÓN DE CAMBIOS
5.1 VERIFICACIÓN

La nueva versión del proyecto TiggerRummy debe probarse (con el deck de pruebas) antes de liberarse
para los proyectos usuarios.
5.2 METRICS

Se deberían hacer mediciones para cuantificar el cambio que significa la rama.
5.3 CRITERIO DE FINALIZACIÓN

La satisfacción de los proyectos usuarios que utilicen el cambio.
5.4 SALIDAS
Lista de entregables que debe producir el proceso ejecutado:
Entregable
Reporte técnico de la extensión o cambio
realizado al Framework TiggerRummy
Manual para el usuario describiendo cómo
utilizar la extensión o cambio realizado al
Framework TiggerRummy
Aprobación de la extensión o cambio
Responsable
Desarrolladores a cargo
Desarrolladores a cargo
Probadores y Administrador
pg. 19
Descargar