Français

Outils de développement · Comparaison de texte

Comment lire une différence unifiée : en-têtes de morceaux, lignes de contexte et marqueurs +/-

· Contexte

texte-diff correctifs flux de travail du développeur

Une pile de contexte, des lignes supprimées et ajoutées à côté de deux étiquettes de fichier
Illustration vectorielle originale de ToolAcre

Décode le format de comparaison unifié ligne par ligne, depuis les en-têtes de fichiers et les plages de morceaux @@ jusqu'aux lignes de contexte et aux marqueurs de changement, afin que les correctifs de n'importe quel outil aient un sens.

Un mur de symboles plus, moins et @@ — s'ouvre dès la première rencontre avec un correctif dans un e-mail ou une pull request

Un `changes.patch` téléchargé commence par une ponctuation qui ressemble à une sortie de différence familière, mais sa structure exacte est importante. ToolAcre écrit deux étiquettes, puis chaque ligne de comparaison avec un marqueur à un caractère. Lire ce qui existe est plus sûr que de fournir mentalement des champs à partir d'un autre format de correctif.

Ouvrez le fichier dans un éditeur de texte brut. Les deux premières lignes identifient les étiquettes gauche et droite fournies par l'interface utilisateur comme `original` et `changed`. Les lignes suivantes reconstruisent les textes comparés grâce à des marqueurs de contexte, de suppression et d'ajout.

Les lignes d'en-tête du fichier — expliquent les lignes --- et +++, les chemins et les préfixes a/ et b/ que les outils ajoutent

L'en-tête est `--- original` suivi de `+++ changed`. Dans d'autres outils, ces préfixes peuvent figurer dans une grammaire de correctifs plus riche, mais cet exportateur n'ajoute aucun horodatage, chemin ou métadonnée. Les étiquettes décrivent les côtés, et non les fichiers dont l'existence est prouvée sur le disque.

Cette distinction est importante car Text diff accepte les chaînes collées plutôt que les objets fichier. Le téléchargement crée un rapport textuel local après comparaison. Traiter les étiquettes comme des chemins de référentiel ou des identifiants de révision attribuerait une provenance que l'interface utilisateur n'a jamais collectée.

Explication des en-têtes de gros morceaux - décode @@ -12,7 +12,8 @@ comme ligne de départ et nombre de lignes pour chaque côté

Il n'y a aucune ligne commençant par `@@` dans `toUnifiedText`. La fonction mappe directement sur toutes les lignes après les deux étiquettes. Par conséquent, cette sortie n'a aucune plage de morceaux à décoder et aucune paire start-line/count intégrée dans le texte téléchargé.

Les numéros de ligne restent disponibles dans la vue du navigateur rendue, où les lignes portent des positions gauche et droite. L'export choisit une représentation plus simple. Si un programme en aval nécessite des éléments unifiés conformes aux normes, vérifiez la compatibilité plutôt que de supposer que l'extension `.patch` fournit une syntaxe manquante.

ToolAcre n'émet aucun en-tête de morceau @@, il n'y en a donc aucun à décoder

Un espace de début marque une ligne inchangée, moins marque une suppression à gauche et plus marque un ajout à droite. L'interface utilisateur peut réduire visuellement de longues exécutions égales, mais `lastDiff` conserve le résultat complet et le téléchargement sérialise toutes les lignes. Aucun marqueur de saut n'entre dans la chaîne de patch.

Le plan mentionnait trois lignes de contexte par défaut. Three est utilisé par l’appel de repli visuel, pas par l’exportation. Confondre ces chemins sous-estimerait le contenu téléchargé. La présentation et la sérialisation partagent des lignes mais appliquent des transformations différentes.

Le téléchargement marque chaque ligne et n'utilise pas de contexte par défaut à trois lignes.

Comparez le `a b` gauche avec le `a c` droit. Les lignes exportées sont les deux étiquettes, puis espace-a, moins-b et plus-c. La lecture de haut en bas indique que `a` survit, `b` quitte l'original et `c` entre dans le côté modifié.

Une modification est donc représentée comme une suppression et un ajout adjacents lorsque l'alignement les rapproche. Le format ne le nomme pas « modifié ». Si des lignes répétées permettent un autre alignement, la séquence peut être différente tout en tenant compte de chaque ligne d'entrée.

Exemple concret : lire le flux complet en forme de patch que ToolAcre exporte réellement

Les formats de comparaison unifiés normaux, contextuels et complets ont leurs propres spécifications et historiques, mais ceux-ci ne sont pas implémentés ou documentés par l'ensemble source utilisé ici. Cet article n'explique pas pourquoi un format est devenu populaire ni ne répertorie les champs que ToolAcre n'émet pas.

Utilisez une commande de contrôle de version lorsqu'un autre outil doit appliquer le correctif. Le téléchargement de ToolAcre est utile en tant qu'artefact de révision portable, mais le référentiel ne contient aucun analyseur de correctifs ni fonction d'application prouvant qu'il peut effectuer un aller-retour via des consommateurs de correctifs arbitraires.

Les comparaisons complètes unifiées, contextuelles et au format normal nécessitent des sources externes

Les correctifs binaires, les en-têtes de renommage, les changements de mode et les applications sont en dehors de cette route. Le texte ne contient aucun identifiant d'objet ni ancêtre commun. Il ne peut pas représenter une opération de référentiel simplement parce que ses marqueurs semblent familiers.

L'exportateur reflète également les options de comparaison actives. Une ligne considérée comme égale après la normalisation de la casse ou des espaces contient uniquement le texte gauche d'origine, de sorte que le document en forme de patch n'est pas une reconstruction octet par octet des deux entrées dans le cadre d'une correspondance lâche.

À retenir : une différence est une histoire compressée - résume l'ordre de lecture et note comment la comparaison de texte de ToolAcre montre les mêmes types de changements que les lignes en surbrillance pour un examen rapide

Lisez d'abord les deux étiquettes, puis interprétez chaque ligne préfixée dans l'ordre. Si vous avez besoin de numéros de ligne rendus, revenez à la vue du navigateur. Si vous avez besoin de mecs répondant aux normes, générez-les avec un outil qui documente ce contrat.

ToolAcre fournit un moyen compact de faire la comparaison en dehors de la page sans prétendre implémenter chaque fonctionnalité de correctif. Ce nom plus restreint (sortie sous forme de patch) maintient les attentes alignées sur la fonction exacte et évite une fausse promesse de compatibilité des applications.