Cenário
Suponhamos que temos um produto de software. Sua última versão foi desenhada e implementada por uma equipe de desenvolvimento com a GeneXus 9.0 e gerada no Visual Basic 6 com interface GUI. Por um lado, é necessário oferecer rapidamente hotfixes e melhoras menores aos clientes existentes e por outro lado, também se necessita uma versão totalmente nova, Web, aproveitando o novo GeneXus X Evolution 1.
Como podemos fazer para manter sincronizadas as duas versões? Como “passar” os hotfixes e as melhoras menores à nova versão com um gerenciamento mínimo?
A Solução
A solução se baseia no emprego de três Bases de Conhecimento (KB) e utiliza Change Defender.
A primeira KB é a KB GX 9(A). Há uma KB auxiliar na GeneXus X Evolution 1(B); e a última KB (C) é usada para desenvolver efetivamente a nova versão do produto. As alterações em A devem passar a C sem perder nada. O processo é o seguinte:
- Converter A para B. Com isto, B = A. (Não é necessário gerar B.)
- Congelar B e Propagar Versão (isto cria um xpz especial)
- Criar C e importar o que foi propagado no passo anterior. Agora C = B = A.
- Todas as alterações são distribuídas em A e importadas em B
- Passo opcional: Abrir B e comparar as revisões dos objetos alterados
- Abrir B e Propagar Alterações
- Importar as alterações propagadas em C.
Notas:
Em caso de conflito que não possa ser resolvido automaticamente, o usuário é informado
O que deve ser feito em forma manual:
- Apagar de B os objetos que foram excluídos de A. Isso não se exporta automaticamente da GX 9.0 à GX X EV1.
- Renomear em B os objetos que foram renomeados em A. Isso não se exporta automaticamente da GX 9.0 à GX X EV1.
- Ao importar em C, pode haver conflitos que não possam se resolver automaticamente, que são informados ao usuário, e para cuja resolução o IDE oferece ferramentas de apoio.