Historique et merge
Lire l'historique d'une app, revenir sur une modification, restaurer un état ancien, et récupérer des éléments d'une version dans une autre avec le merge sélectif.
Tout ce qui s'enregistre dans une app est consigné. L'historique répond à trois questions — ce qui a changé, qui l'a changé et quand — et donne deux façons de revenir en arrière. Le merge sélectif fait l'inverse : il emmène des modifications d'une version dans une autre, élément par élément, sans mélanger ce que l'on ne veut pas.
Ouvrir l'historique
- Ouvrez l'app et cliquez sur le bouton des versions, dans l'en-tête de la barre de l'app.
- Sur la ligne de la version que vous voulez inspecter, cliquez sur l'icône de l'horloge — Voir l'historique de cette version.
- Un onglet Historique de … s'ouvre dans l'espace de travail.

Chaque ligne est un commit, et se lit de gauche à droite :
| Élément | Ce que c'est |
|---|---|
| Le trait coloré | La branche à laquelle le commit appartient. Des versions différentes ont des couleurs différentes, et le dessin montre où elles se sont séparées. |
Les étiquettes (main, 1.1) |
Les versions dans lesquelles ce commit se trouve. Un commit antérieur à la séparation apparaît dans les deux. |
| La phrase | Ce qui a été enregistré — « Tema da app alterado » (thème modifié), « Ecrã "Contas" gravado » (écran enregistré), « Script "importar" criado » (script créé). |
| Le nombre | Combien de fichiers le commit a touchés. |
| Le code court | L'identifiant du commit. |
| Le nom | Qui a enregistré. |
| La date | Quand. |
Cliquez sur une ligne pour l'ouvrir et voir ce qui a été touché : la liste des éléments, chacun avec la marque de ce qui lui est arrivé — créé, modifié, supprimé ou renommé. Un commit sans détail enregistré dit « Aucun fichier enregistré dans ce commit. »
Nota
Les commits antérieurs à la création d'une version appartiennent à toutes les versions qui en descendent. Quand il y en a beaucoup à la suite, le panneau les regroupe sur une seule ligne — « N modifications communes à toutes les versions — développer » — pour que le dessin ne devienne pas illisible. Cliquez pour les ouvrir.
Voir l'historique d'un élément
Le panneau de l'historique s'ouvre aussi centré sur un seul élément, quand vous voulez l'histoire d'un écran et non celle de l'app entière. La liste ne montre alors que les commits qui l'ont touché, et une app sans modification sur cet élément dit « Cet élément n'a aucune modification enregistrée. »
Annuler : revenir sur une modification
Le retour en arrière crée un nouveau commit qui annule un ancien. Il sert à retirer une modification du milieu sans jeter ce qui est venu après elle.
- Dans l'historique, passez la souris sur la ligne du commit.
- Cliquez sur l'icône des trois points à droite — Actions du commit.
- Choisissez Revenir sur cette modification.
- Confirmez dans « Revenir sur cette modification ? » — "Crée un NOUVEAU commit qui annule « … ». L'histoire ne se réécrit pas — annuler l'annulation est un pas de plus en avant."
- La confirmation dit « Retour en arrière effectué — nouveau commit dans l'historique. »

Revenir en arrière : restaurer un état
Restaurer est plus radical : cela écrit le contenu d'un moment ancien par-dessus la conception actuelle.
- Dans le même menu Actions du commit, choisissez Restaurer l'app dans cet état.
- Confirmez dans « Restaurer l'app dans cet état ? » — « Écrit le contenu de … par-dessus la conception actuelle et enregistre À NOUVEAU. Tout ce qui est venu après est défait — mais reste dans l'historique. »
- La confirmation dit « État restauré — nouveau commit dans l'historique. » Si l'app était déjà exactement dans cet état, la plateforme n'enregistre rien et prévient : « L'app est déjà exactement dans cet état — rien à enregistrer. »
Dica
La règle vaut pour les deux actions : l'histoire ne se réécrit jamais. Ni le retour en arrière ni la restauration ne suppriment de commits — les deux en ajoutent un. C'est pour cela que l'on peut toujours revenir en arrière encore une fois : annuler l'annulation est un pas de plus en avant.
Merge sélectif : récupérer d'une autre version
Quand le travail d'une version est prêt à entrer dans une autre, le merge sélectif récupère les éléments que vous choisissez — et ceux-là seulement.
- Ouvrez le menu Versions dans l'en-tête de l'app.
- Cliquez sur Merge sélectif…. (L'option ne devient active qu'à partir de deux versions ; avec une seule, il n'y a nulle part où aller chercher.)
- Le modal Merge sélectif s'ouvre, avec l'explication : "Récupérer des éléments d'une autre version dans la version « main ». Le merge récupère et met à jour — il ne supprime jamais ; les références sont validées avant l'enregistrement."
- Choisissez la Version source dans le sélecteur du haut.
- La liste se remplit avec les éléments de cette version, groupés par catégorie.

Les catégories sont les pièces de l'app : Écrans, Layouts, Widgets, Écrans système, Navigation, Modèle, Enums, APIs, Datasources, Scripts, Planifications, Triggers, Rapports, Processus, Permissions, Traductions, Thème, Assets, Stockages, Canaux et Paramètres de l'app.
- Cochez ce que vous voulez récupérer. Le compteur en haut suit — « 3 sélectionné(s) ».
- Utilisez le champ Rechercher des éléments… pour filtrer quand la liste est longue.

- Cliquez sur Récupérer 3 élément(s).
- La confirmation dit « Merge de la version 1.1 terminé — 3 élément(s) récupérés. », et l'espace de travail se recharge déjà avec ce qui est arrivé.
Ce que le merge fait — et ce qu'il ne fait jamais
| Fait | Ne fait jamais |
|---|---|
| Récupère les éléments qui n'existaient pas dans la version de destination | Supprime ce qui existe dans la version de destination et n'a pas été sélectionné |
| Met à jour ceux qui existaient déjà, avec la version de la source | Touche aux données — le merge porte sur la conception, pas sur les tables |
| Valide les références avant d'enregistrer | Mélange les versions automatiquement : rien ne bouge sans que quelqu'un l'ait coché |
Cette dernière ligne est le filet de sécurité. Si ce que vous avez sélectionné pointe vers quelque chose qui n'existe pas dans la destination — un écran qui utilise un widget qui n'a pas été récupéré — le merge n'enregistre pas et explique : « Le merge n'a pas été enregistré — l'arborescence résultante contenait des références cassées : », avec la liste des problèmes. Récupérez aussi ce qui manque et recommencez.
Atenção
Le merge ne supprime pas. Si vous avez supprimé un écran dans la version source, le merge ne le supprime pas dans la destination — il ne fait que récupérer et mettre à jour. Supprimer reste un acte explicite, fait dans la version où il doit être fait.
Questions fréquentes
- Le merge récupère-t-il les données ? Non. Il récupère la conception. Les tables, les enregistrements et les fichiers de chaque version appartiennent à cette version.
- Puis-je faire un merge dans les deux sens ? Oui. Le merge est toujours « récupérer dans la version où je suis » — changez de version et faites le chemin inverse.
- Revenir sur la modification de quelqu'un d'autre ? Vous le pouvez : les actions de l'historique valent pour n'importe quel commit de la version où vous êtes, quel qu'en soit l'auteur. Son nom reste dans l'historique, et le vôtre sur le commit qui l'annule.
- Pourquoi l'option Merge sélectif est-elle grisée ? L'app n'a qu'une seule version. Créez-en une autre et l'option s'allume.