Fusion de texte
Une fusion de texte combine les changements de deux versions d’un fichier dans un resultat editable unique. Un conflit survient lorsque deux changements sont incompatibles et qu’une decision est necessaire.
Disposition
Cet ecran affiche trois versions du meme fichier.
- Le volet gauche est votre version avec les changements locaux.
- Le volet central est le resultat. C’est le seul volet editable.
- Le volet droit est la version entrante avec les changements distants.
Il existe deux dispositions de fusion :
- Fusion avec espaces d’insertion maintient l’alignement des trois volets avec des lignes d’espace explicites.
- Fusion avec connecteurs utilise des colonnes de connexion pour montrer comment les changements associes se correspondent entre les volets.
Pour passer de l’une a l’autre, utilisez le menu Presentation ou le controle segmente en haut a droite.
Base
Il existe aussi une quatrieme version : la base. C’est la version d’origine dont les deux cotes sont partis. Cela correspond au modele de fusion a trois voies de Git :
Local → Base ← Remote
↓
Result
Dans ABDiff, le volet central peut basculer entre Resultat et Base pour vous aider a mieux comprendre ce qui a change.
Qu’est-ce qu’un conflit ?
Un conflit se produit quand les deux cotes modifient les memes lignes de maniere differente. Par exemple, la valeur d’origine etait “blue”, mais un cote dit maintenant “green” et l’autre “red”. Git ne peut pas determiner quelle modification est correcte, il demande donc une resolution manuelle.
Cela arrive lorsque deux personnes modifient les memes lignes en meme temps. Si les changements ne se chevauchent pas, Git les fusionne automatiquement. S’ils se chevauchent, vous devez resoudre le conflit manuellement.
Resoudre un conflit
Si vous avez configure Git, ABDiff se lance lorsque Git detecte un conflit. La zone de resultat reste non resolue, et votre travail consiste a definir son contenu. Vous avez trois options :
- Resoudre avec la version locale
- Resoudre avec la version entrante
- Creer votre propre resultat
- Modifiez la ligne selectionnee (Entree ou double-clic)
- Ou copiez des lignes depuis l’un des deux cotes : clic droit ▸ Copier la selection vers le resultat (⌘→ / ⌘←)
Conseils :
- Etendez la selection (⇧↑ / ⇧↓) pour copier plusieurs lignes a la fois.
- Utilisez ⌘Z pour annuler n’importe quel changement.
Marquer comme resolu
Quand vous avez termine, enregistrez le fichier (Fichier ▸ Enregistrer ou ⌘S). Cela indique a Git que le conflit a ete resolu.
Si vous ne souhaitez pas resoudre le conflit, fermez simplement le fichier sans l’enregistrer.
Edition et navigation
Navigation
| Action | Raccourci |
|---|---|
| Ligne precedente / suivante | ↑ / ↓ |
| Volet precedent / suivant | ← / → |
| Aller a la premiere / derniere ligne | ⌘↑ / ⌘↓ |
| Changement precedent / suivant | ⌥↑ / ⌥↓ |
| Bloc precedent / suivant | ⌥↑ / ⌥↓ |
| Passer a un autre volet | ⇥ |
Copier
| Action | Raccourci |
|---|---|
| Copier la selection vers le resultat | ⌘← ⌘→ |
| Etendre la selection | ⇧↑ / ⇧↓ |
| Resoudre avec notre version / leur version | ⇧⌘→ / ⇧⌘← |
Une ligne selectionnee est affichee avec un rectangle gris. Un bloc est un bloc continu de conflit ou de changement. Les actions de copie ne sont actives que si elles modifieraient le volet Resultat et si la selection se trouve sur une vraie ligne. Un clic Maj sur une ligne etend egalement la selection actuelle dans le meme volet.
Pour copier des changements :
- Utilisez Copier pour copier les lignes actuellement selectionnees.
- Utilisez Copier tout le bloc pour copier le bloc dans lequel se trouve la ligne selectionnee.
- Un clic droit dans la selection actuelle conserve la selection ; un clic droit ailleurs selectionne d’abord cette ligne.
- Le menu contextuel de la ligne propose egalement Etendre la selection vers le haut / Etendre la selection vers le bas lorsque ces deplacements avec Maj + fleche sont disponibles.
- Utilisez Resoudre avec pour la ligne selectionnee, soit par clic droit sur une ligne, soit depuis Edition ▸ Resoudre avec.
Toutes les actions de copie peuvent etre annulees avec ⌘Z.
Edition
| Action | Raccourci |
|---|---|
| Commencer a modifier la ligne de resultat selectionnee | Return |
| Commencer directement a modifier une ligne de resultat | Double-clic sur la ligne |
| Confirmer et passer a la ligne editable suivante | Return (pendant l’edition) |
| Confirmer et quitter le mode edition | Command-Return |
| Abandonner le tampon de la ligne courante et quitter le mode edition | Esc ou Command-. |
L’edition peut aussi commencer par un double-clic sur une ligne. Toutes les actions d’edition peuvent etre annulees avec ⌘Z.
Options d’affichage
La fusion de texte expose des options qui changent la facon dont la comparaison est calculee ou affichee. Elles sont disponibles dans le menu d’options.
- Motifs d’ignorance reduisent les differences parasites. Voir Motifs d’ignorance.
- Normalisation JSON convertit l’entrée dans une forme canonique afin de rendre la comparaison semantiquement pertinente. Enregistrer un fichier normalise reecrit le fichier d’entree avec le format normalise.