KEPLIN Docs

Histórico e merge

Ler o histórico de uma app, desfazer uma alteração, repor um estado antigo, e trazer elementos de uma versão para outra com o merge selectivo.

Tudo o que se grava numa app fica registado. O histórico responde a três perguntas — o que mudou, quem mudou e quando — e dá duas formas de voltar atrás. O merge selectivo faz o contrário: leva alterações de uma versão para outra, elemento a elemento, sem misturar o que não se quer.

Abrir o histórico

  1. Abre a app e clica no botão de versões, no cabeçalho da barra da app.
  2. Na linha da versão que queres inspeccionar, clica no ícone do relógio — Ver o histórico desta versão.
  3. Abre-se um separador Histórico de … no espaço de trabalho.

O painel Histórico de uma versão, com uma gravação por linha
O painel Histórico de uma versão, com uma gravação por linha

Cada linha é uma gravação, e lê-se da esquerda para a direita:

Elemento O que é
O traço colorido O ramo a que a gravação pertence. Versões diferentes têm cores diferentes, e o desenho mostra onde se separaram.
As etiquetas (main, 1.1) As versões em que aquela gravação está. Uma gravação anterior à separação aparece nas duas.
A frase O que foi gravado — "Tema da app alterado", 'Ecrã "Contas" gravado', 'Script "importar" criado'.
O número Quantos ficheiros a gravação tocou.
O código curto O identificador da gravação.
O nome Quem gravou.
A data Quando.

Clica numa linha para a abrir e ver o que foi tocado: a lista dos elementos, cada um com a marca do que lhe aconteceu — criado, alterado, apagado ou renomeado. Uma gravação sem detalhe guardado diz "Sem ficheiros registados nesta gravação."

Nota

As gravações anteriores à criação de uma versão pertencem a todas as versões que dela descendem. Quando são muitas seguidas, o painel agrupa-as numa linha — "N alterações comuns a todas as versões — expandir" — para o desenho não ficar ilegível. Clica para as abrir.

Ver o histórico de um elemento

O painel do histórico também abre focado num elemento só, quando queres a história de um ecrã e não a da app inteira. Aí, a lista mostra apenas as gravações que lhe tocaram, e uma app sem alterações nesse elemento diz "Este item não tem alterações registadas."

Desfazer: reverter uma alteração

Reverter cria uma gravação nova que anula uma antiga. Serve para tirar uma alteração do meio sem deitar fora o que veio depois dela.

  1. No histórico, passa o rato pela linha da gravação.
  2. Clica no ícone de três pontos à direita — Acções da gravação.
  3. Escolhe Reverter esta alteração.
  4. Confirma em 'Reverter esta alteração?' — "Cria uma gravação NOVA que desfaz «…». A história não se reescreve — desfazer o desfazer é mais um passo em frente."
  5. A confirmação diz "Alteração revertida — gravação nova no histórico."

O menu de acções de uma gravação, com Reverter esta alteração e Repor a app neste estado
O menu de acções de uma gravação, com Reverter esta alteração e Repor a app neste estado

Voltar atrás: repor um estado

Repor é mais radical: escreve o conteúdo de um momento antigo por cima do desenho actual.

  1. No mesmo menu Acções da gravação, escolhe Repor a app neste estado.
  2. Confirma em 'Repor a app neste estado?' — "Escreve o conteúdo de … por cima do desenho actual e grava OUTRA vez. Tudo o que veio depois fica desfeito — mas continua no histórico."
  3. A confirmação diz "Estado reposto — gravação nova no histórico." Se a app já estivesse exactamente nesse estado, a plataforma não grava nada e avisa: "A app já está exactamente nesse estado — nada para gravar."

Dica

A regra vale para as duas acções: a história nunca se reescreve. Nem reverter nem repor apagam gravações — ambas acrescentam uma. É por isso que se pode sempre voltar atrás outra vez: desfazer o desfazer é mais um passo em frente.

Merge selectivo: trazer de outra versão

Quando o trabalho de uma versão está pronto para entrar noutra, o merge selectivo traz os elementos que escolheres — e só esses.

  1. Abre o menu Versões no cabeçalho da app.
  2. Clica em Merge selectivo…. (A opção só fica activa a partir de duas versões; com uma só não há de onde trazer.)
  3. Abre-se o modal Merge selectivo, com a explicação: "Trazer elementos de outra versão para a versão «main». O merge traz e actualiza — nunca apaga; as referências validam-se antes de gravar."
  4. Escolhe a Versão de origem no selector do topo.
  5. A lista enche-se com os elementos dessa versão, agrupados por categoria.

O modal Merge selectivo, com a versão de origem e os elementos agrupados por categoria
O modal Merge selectivo, com a versão de origem e os elementos agrupados por categoria

As categorias são as peças da app: Ecrãs, Layouts, Widgets, Ecrãs de sistema, Navegação, Modelo, Enums, APIs, Datasources, Scripts, Agendamentos, Triggers, Relatórios, Processos, Permissões, Traduções, Tema, Assets, Armazenamentos, Canais e Definições da app.

  1. Marca o que queres trazer. O contador no topo acompanha — "3 seleccionado(s)".
  2. Usa a caixa Pesquisar elementos… para filtrar quando a lista for longa.

A pesquisa do merge a filtrar os elementos de uma categoria
A pesquisa do merge a filtrar os elementos de uma categoria

  1. Clica em Trazer 3 elemento(s).
  2. A confirmação diz "Merge da versão 1.1 concluído — 3 elemento(s) trazidos.", e o espaço de trabalho recarrega já com o que veio.

O que o merge faz — e o que nunca faz

Faz Nunca faz
Traz elementos que não existiam na versão de destino Apaga o que existe na versão de destino e não foi seleccionado
Actualiza os que já existiam, com a versão da origem Toca nos dados — o merge é do desenho, não das tabelas
Valida as referências antes de gravar Mistura versões automaticamente: nada se move sem alguém marcar

Essa última linha é a rede de segurança. Se o que seleccionaste apontar para qualquer coisa que não existe no destino — um ecrã que usa um widget que não foi trazido — o merge não grava e explica: "O merge não foi gravado — a árvore resultante tinha referências partidas:", com a lista dos problemas. Traz também o que falta e repete.

Atenção

O merge não apaga. Se na versão de origem apagaste um ecrã, o merge não o apaga no destino — só traz e actualiza. Apagar continua a ser um acto explícito, feito na versão onde deve ser apagado.

Perguntas frequentes

  • O merge traz os dados? Não. Traz o desenho. As tabelas, os registos e os ficheiros de cada versão são dela.
  • Posso fazer merge nos dois sentidos? Sim. O merge é sempre "trazer para a versão em que estou" — troca de versão e faz o caminho inverso.
  • Reverter uma alteração de outra pessoa? Podes: as acções do histórico valem para qualquer gravação da versão em que estás, seja quem for o autor. O nome dela fica no histórico, e o teu na gravação que a desfaz.
  • Porque é que a opção Merge selectivo está cinzenta? A app só tem uma versão. Cria outra e a opção acende.