Diffs et aperçus
Lire un diff
| Bascule | Ce qu'elle fait |
|---|---|
| Unifié ↔ partagé | Côte à côte quand vous voulez comparer, empilé quand vous voulez lire |
| Au niveau du mot | Ne surligne que les jetons modifiés à l'intérieur d'une ligne éditée — rouge sur l'ancienne, vert sur la nouvelle |
| Ignorer les espaces | Masque les réindentations pour faire remonter le vrai changement |
| Retour à la ligne (vue côte à côte) | Coupe les lignes longues dans leur colonne au lieu de les faire défiler |
| Lié (côte à côte, sans retour à la ligne) | Fait défiler les deux moitiés ensemble, verticalement et latéralement — désactivé, chaque colonne défile seule |
| ⌘F | Chercher dans le diff, avec passage au suivant/précédent |
Le retour à la ligne est désactivé par défaut : une ligne tient sur une rangée, donc les deux côtés restent comparables rangée par rangée, et chaque moitié défile horizontalement avec sa propre barre. Activez-le quand vous préférez lire une longue ligne plutôt que la poursuivre — en échange, une ligne repliée sur trois rangées ne fait plus face à son homologue. Chaque bouton retient son état d'un fichier et d'une session à l'autre.
Sans retour à la ligne, les deux moitiés défilent liées par défaut — verticalement, ce qui garde les rangées face à face, et latéralement, si bien que la colonne 90 à gauche se trouve au-dessus de la colonne 90 à droite. Déliez-les quand les côtés se sont écartés — un bloc indenté face à un bloc qui ne l’est pas, un renommage qui a décalé chaque ligne — ou quand vous voulez comparer deux régions éloignées du même fichier, et posez chaque moitié là où est son contenu.

Au-dessus de chaque diff se trouve le résumé sémantique — ce qui a changé, symbole par symbole, plutôt que ligne par ligne.
Diffs d'images
Les images modifiées ont droit à une vraie comparaison : côte à côte, ou une poignée à faire glisser entre l'avant et l'après.

Marge des modifications et mini-carte
La vue Fichier d'un fichier de l'arbre de travail — indexé ou non, suivi ou tout nouveau — porte une barre colorée à côté de chaque ligne modifiée depuis HEAD (ou l'index, pour les fichiers indexés) : vert pour un ajout, bleu pour une modification, un petit coin rouge là où des lignes ont été supprimées sans remplacement. Cliquez sur une barre pour voir cette modification sans quitter le fichier — la popup affiche les lignes supprimées et ajoutées, avec suivant/précédent pour parcourir toutes les modifications du fichier.

La mini-carte, désactivée par défaut, ajoute un aperçu réduit de tout le fichier sur le bord droit — cliquez ou faites-la glisser pour naviguer, comme le ferait une barre de défilement si elle pouvait aussi montrer la forme du fichier. Les deux sont des réglages par machine sous Réglages → Général → Visionneuse de fichiers.
Aucune des deux ne lit l'historique : passez à Diff, Blame ou à un commit plus ancien, et la marge disparaît — ces vues affichent déjà chaque modification directement.
Prévisualiser n'importe quoi
Le mode Aperçu rend le fichier au lieu d'en montrer la source : Markdown,
Word (.docx), Excel (.xlsx), PDF, vidéo, audio, images, et du code coloré
syntaxiquement pour tout le reste.

Listes de propriétés Apple
Info.plist et *.entitlements sont du XML, et le XML n'est pas ce que
quiconque cherche à lire. L'aperçu montre à la place le plan clé/valeur — la
forme qu'affiche l'éditeur de plist d'Xcode lui-même — imbrication intacte et
type de chaque valeur à côté.

Deux limites. Un plist binaire (bplist00) est reconnu et nommé, pas
décodé — passez-lui plutil -convert xml1 si vous le voulez ici, même si un
plist binaire dans un dépôt est le plus souvent un artefact de build qui n'aurait
pas dû être versionné. Et les valeurs <data> s'affichent comme un nombre
d'octets plutôt qu'en base64 : un blob ne vous apprend rien, et un profil de
provisionnement rendu dans un panneau que vous partagez peut-être en apprend
beaucoup trop aux autres.
Projets Xcode
Un project.pbxproj est un dictionnaire plat d'objets qui se désignent les uns
les autres par identifiant : le lire dans l'ordre ne dit presque rien du projet.
L'aperçu suit ces références et reconstruit les trois choses que vous étiez venu
chercher — les cibles et leurs phases de compilation, l'arbre de groupes
tel que le dessine le navigateur d'Xcode, et les réglages de compilation par
configuration.

C'est un lecteur, pas un éditeur : rien ici n'écrit dans le projet. Pour ce qui se passe quand deux branches en modifient un, voyez résoudre les conflits.
Fichiers très volumineux
Les aperçus et la vue fichier chargent le fichier entier en mémoire ; tous deux refusent donc les fichiers dépassant un plafond de taille (32 Mo pour les aperçus, 16 Mo pour le texte) et indiquent à la place la taille du fichier. Charger quand même lève le plafond pour ce fichier — rien n'est hors de portée, les gros chargements sont simplement volontaires. Les fichiers et diffs au-delà de quelques milliers de lignes restent rendus en entier, mais les lignes hors de la zone visible ne sont plus mises en page ni peintes : un diff géant de lockfile ne coûte plus la mémoire d'un ordinateur portable entier.

L'onglet Fichiers
L'onglet Fichiers de la barre latérale gauche parcourt la copie de travail elle-même, avec des badges d'état sur les dossiers (ajouté / modifié / supprimé) qui agrègent ce qu'ils contiennent.


Voir aussi : Diff sémantique · Indexation