Cronologia e merge
Leggere la cronologia di un'app, annullare una modifica, ripristinare uno stato precedente, e portare elementi da una versione a un'altra con il merge selettivo.
Tutto quello che si salva in un'app resta registrato. La cronologia risponde a tre domande — cosa è cambiato, chi l'ha cambiato e quando — e offre due modi di tornare indietro. Il merge selettivo fa il contrario: porta modifiche da una versione a un'altra, elemento per elemento, senza mescolare quello che non si vuole.
Aprire la cronologia
- Apri l'app e clicca sul pulsante delle versioni, nell'intestazione della barra dell'app.
- Sulla riga della versione che vuoi ispezionare, clicca sull'icona dell'orologio — Visualizza la cronologia di questa versione.
- Si apre una scheda Cronologia di … nello spazio di lavoro.

Ogni riga è un commit, e si legge da sinistra a destra:
| Elemento | Che cos'è |
|---|---|
| Il tratto colorato | Il ramo a cui il commit appartiene. Versioni diverse hanno colori diversi, e il disegno mostra dove si sono separate. |
Le etichette (main, 1.1) |
Le versioni in cui quel commit si trova. Un commit anteriore alla separazione compare in entrambe. |
| La frase | Cosa è stato salvato — "Tema dell'app modificato", 'Schermata "Contas" salvata', 'Script "importar" creato'. |
| Il numero | Quanti file il commit ha toccato. |
| Il codice breve | L'identificatore del commit. |
| Il nome | Chi ha salvato. |
| La data | Quando. |
Clicca su una riga per aprirla e vedere cosa è stato toccato: l'elenco degli elementi, ciascuno con il segno di quello che gli è successo — creato, modificato, eliminato o rinominato. Un commit senza dettaglio salvato dice "Nessun file registrato in questo salvataggio."
Nota
I commit anteriori alla creazione di una versione appartengono a tutte le versioni che ne discendono. Quando sono tanti di seguito, il pannello li raggruppa in una riga — "N modifiche comuni a tutte le versioni — espandi" — perché il disegno non diventi illeggibile. Clicca per aprirli.
Vedere la cronologia di un elemento
Il pannello della cronologia si apre anche concentrato su un solo elemento, quando vuoi la storia di una schermata e non quella dell'app intera. Lì, l'elenco mostra solo i commit che l'hanno toccata, e un'app senza modifiche su quell'elemento dice "Questo elemento non ha modifiche registrate."
Annullare: revocare una modifica
Annullare crea un commit nuovo che ne cancella uno precedente. Serve per togliere una modifica di mezzo senza buttare via quello che è venuto dopo.
- Nella cronologia, passa il mouse sulla riga del commit.
- Clicca sull'icona dei tre puntini a destra — Azioni del commit.
- Scegli Annulla questa modifica.
- Conferma in 'Annullare questa modifica?' — "Crea un NUOVO commit che annulla «…». La storia non si riscrive — annullare l'annullamento è un altro passo in avanti."
- La conferma dice "Modifica annullata — nuovo commit nella cronologia."

Tornare indietro: ripristinare uno stato
Ripristinare è più radicale: scrive il contenuto di un momento passato sopra il design attuale.
- Nello stesso menu Azioni del commit, scegli Ripristina l'app a questo stato.
- Conferma in 'Ripristinare l'app a questo stato?' — "Scrive il contenuto di … sopra il design attuale e salva di NUOVO. Tutto ciò che è venuto dopo viene annullato — ma resta nella cronologia."
- La conferma dice "Stato ripristinato — nuovo commit nella cronologia." Se l'app fosse già esattamente in quello stato, la piattaforma non salva nulla e avvisa: "L'app è già esattamente in quello stato — niente da salvare."
Dica
La regola vale per entrambe le azioni: la storia non si riscrive mai. Né annullare né ripristinare eliminano commit — entrambe ne aggiungono uno. È per questo che si può sempre tornare indietro un'altra volta: annullare l'annullamento è un altro passo in avanti.
Merge selettivo: portare da un'altra versione
Quando il lavoro di una versione è pronto per entrare in un'altra, il merge selettivo porta gli elementi che scegli — e solo quelli.
- Apri il menu Versioni nell'intestazione dell'app.
- Clicca su Merge selettivo…. (L'opzione si attiva solo a partire da due versioni; con una sola non c'è da dove portare.)
- Si apre la finestra Merge selettivo, con la spiegazione: "Trasferisci elementi da un'altra versione nella versione «main». Il merge trasferisce e aggiorna — non elimina mai; i riferimenti vengono validati prima di salvare."
- Scegli la Versione di origine nel selettore in alto.
- L'elenco si riempie con gli elementi di quella versione, raggruppati per categoria.

Le categorie sono i pezzi dell'app: Schermate, Layout, Widget, Schermate di sistema, Navigazione, Modello, Enum, API, Datasource, Script, Pianificazioni, Trigger, Report, Processi, Autorizzazioni, Traduzioni, Tema, Asset, Archiviazioni, Canali e Impostazioni dell'app.
- Spunta quello che vuoi portare. Il contatore in alto segue — "3 selezionato/i".
- Usa la casella Cerca elementi… per filtrare quando l'elenco è lungo.

- Clicca su Trasferisci 3 elemento/i.
- La conferma dice "Merge dalla versione 1.1 completato — 3 elemento/i trasferiti.", e lo spazio di lavoro si ricarica già con quello che è arrivato.
Cosa fa il merge — e cosa non fa mai
| Fa | Non fa mai |
|---|---|
| Porta elementi che non esistevano nella versione di destinazione | Elimina quello che esiste nella versione di destinazione e non è stato selezionato |
| Aggiorna quelli che esistevano già, con la versione dell'origine | Tocca i dati — il merge è del design, non delle tabelle |
| Valida i riferimenti prima di salvare | Mescola versioni automaticamente: niente si muove senza che qualcuno lo spunti |
Quest'ultima riga è la rete di sicurezza. Se quello che hai selezionato punta a qualcosa che non esiste nella destinazione — una schermata che usa un widget non portato — il merge non salva e spiega: "Il merge non è stato salvato — l'albero risultante aveva riferimenti interrotti:", con l'elenco dei problemi. Porta anche quello che manca e ripeti.
Atenção
Il merge non elimina. Se nella versione di origine hai eliminato una schermata, il merge non la elimina nella destinazione — porta e aggiorna soltanto. Eliminare resta un atto esplicito, fatto nella versione in cui va eliminato.
Domande frequenti
- Il merge porta i dati? No. Porta il design. Le tabelle, i record e i file di ogni versione sono suoi.
- Posso fare merge nei due sensi? Sì. Il merge è sempre "portare nella versione su cui sono" — cambia versione e fai il percorso inverso.
- Annullare una modifica di un'altra persona? Puoi: le azioni della cronologia valgono per qualunque commit della versione su cui sei, chiunque ne sia l'autore. Il suo nome resta nella cronologia, e il tuo nel commit che la annulla.
- Perché l'opzione Merge selettivo è grigia? L'app ha una sola versione. Creane un'altra e l'opzione si accende.