Escenario
Supongamos que tenemos un producto de software. Su última versión fue diseñada e implementada por un equipo de desarrollo con GeneXus 9.0 y generada en Visual Basic 6 con interfaz GUI. Por un lado, es necesario ofrecer rápidamente hotfixes y mejoras menores a los clientes existentes y por otro lado también se necesita una versión totalmente nueva, Web, aprovechando el nuevo GeneXus X Evolution 1.
¿Cómo podemos hacer para mantener sincronizadas las dos versiones? ¿Cómo pueden “pasarse” los hotfixes y las mejoras menores a la nueva versión con una administración mínima?
La Solución
La solución se basa en el empleo de tres Bases de Conocimiento (KB) y utiliza Change Defender.
La primera KB es la KB GX 9(A). Hay una KB auxiliar en GeneXus X Evolution 1(B); y la última KB (C) se usa para desarrollar efectivamente la nueva versión del producto.
Los cambios en A deben pasarse a C sin perder nada. El proceso es el siguiente:
Inicialización (se da una vez)
- Convertir A a B. Con esto, B = A. (No es necesario generar B.)
- Congelar B y Propagar Versión (esto crea un xpz especial)
- Crear C e importar lo propagado en el paso anterior. Ahora C = B = A.
Actualización de A (se da cada vez que sea necesario)
- Todos los cambios se distribuyen en A y se importan en B
- Paso opcional: Abrir B y comparar las revisiones de los objetos cambiados
- Abrir B y Propagar Cambios
- Importar los cambios propagados en C.
Notas:
En caso de haber algún conflicto que no pueda ser resuelto automáticamente, se informa al usuario.
Cosas que deben hacerse en forma manual:
- Borrar desde B los objetos que fueron eliminados desde A. Esto no se exporta automáticamente de GX 9.0 a GX X EV1.
- Renombrar en B los objetos que fueron renombrados en A. Esto no se exporta automáticamente de GX 9.0 a GX X EV1.
- Al importar en C, puede haber conflictos que no se puedan resolver automáticamente que son informados al usuario para cuya resolución el IDE brinda herramientas de apoyo.