Français

Texte et outils quotidiens · Boîte à outils de texte

Différence de texte basée sur la ligne expliquée : pourquoi un mot modifié marque toute la ligne

· Comment ça marche

texte-diff comparaison de documents modification

Deux listes de clauses alignées par ligne, avec une ligne supprimée et une ligne ajoutée en surbrillance
Illustration vectorielle originale de ToolAcre

Explique ce qu'une différence basée sur une ligne compare, pourquoi elle signale une modification d'un mot comme une ligne remplacée et comment préparer deux textes afin que la comparaison mette en évidence ce qui a réellement changé.

La différence qui indique que tout a changé : comment un paragraphe redistribué transforme une modification en des dizaines de lignes marquées

Un administrateur de contrats peut modifier une obligation dans une clause, coller deux versions de document dans une comparaison et voir un bloc important signalé autour de cette modification. La cause habituelle n’est pas que chaque phrase ait changé. C'est que la copie à partir d'un traitement de texte a redistribué le paragraphe, déplaçant les mots ultérieurs sur des lignes physiques différentes.

Une comparaison de lignes ne peut aligner que les unités qu'elle reçoit. Si la version A place un paragraphe après « fournisseur » et que la version B le place après « le fournisseur doit », les lignes restantes ne correspondent plus exactement, même lorsque la plupart des termes sont identiques. Rétablissez les limites délibérées des lignes avant de décider que le document contient des dizaines de révisions de fond.

Ce qu'une différence de ligne compare : des lignes entières en tant qu'unités, assorties par égalité, avec des insertions et des suppressions entre les deux

ToolAcre divise chaque entrée en lignes et compare ces chaînes complètes pour vérifier leur égalité. Il construit un tableau de sous-séquence commune la plus longue, qui identifie le plus grand ensemble ordonné de lignes identiques partagées par les deux côtés. Le matériel entre ces ancres est ensuite émis sous forme de lignes supprimées à gauche ou ajoutées à droite.

L'ordre compte autant que le texte. Une clause inchangée peut ancrer l'alignement uniquement là où il apparaît en séquence ; le déplacer ailleurs n’est pas représenté par une opération de déplacement spéciale. Le résultat est un script d'édition minimal orienté ligne, et non une interprétation du sens juridique ou une tentative de regrouper des phrases similaires par sujet.

Pourquoi un mot marque une ligne entière : l'unité de comparaison est la ligne, donc toute différence la remplace

Changer « peut » en « doit » rend la ligne complète inégale. Dans cette implémentation, cette ligne est émise comme supprimée de l'ancien côté et ajoutée au nouveau côté ; la fonction principale n'émet pas de ligne modifiée pour la substitution d'un mot. Les deux lignes décrivent le remplacement au niveau de la granularité de la ligne plutôt que la suppression de l'idée entière.

Lisez ces lignes adjacentes ensemble. Leur formulation partagée aide une personne à localiser le terme modifié, mais l'algorithme présenté dans la source ne met pas en évidence les caractères qu'ils contiennent. Cette distinction explique pourquoi le résultat peut être précis tout en paraissant large : sa plus petite unité de comparaison déclarable est une ligne, quelle que soit la taille de la vérification.

Pourquoi un mot produit une ligne supprimée et une ligne ajoutée dans cette implémentation

Une différence au niveau des mots symbolise la prose plus finement et peut isoler « peut » et « doit ». Une différence au niveau du caractère peut affiner davantage l'affichage, ce qui est utile pour la ponctuation ou l'orthographe. Ces approches créent également davantage de fragments et nécessitent des règles sur les limites des jetons, de sorte que leur précision apparente peut produire un examen plus chargé.

La comparaison de lignes convient aux listes, aux blocs de configuration, aux journaux et aux clauses lorsque chaque ligne représente déjà un élément significatif. Il donne aux évaluateurs un contexte stable et préserve l'ordre sans prétendre comprendre les phrases. Choisissez un outil plus fin lorsque la révision doit identifier les modifications dans de longs paragraphes ; ne vous attendez pas à ce que cette route fabrique ce détail.

Préparer des textes pour bien les différencier : une phrase ou un élément par ligne, des espaces coupés et des fins de ligne cohérentes

Préparez les deux versions de manière à ce qu'une phrase, une clause numérotée ou un élément de liste occupe chaque ligne. Supprimez les lignes vides accidentelles et supprimez les espaces de début ou de fin lorsque ces différences n’ont aucune signification. Conservez l'indentation intentionnelle lorsque cela est important, car la fonction de comparaison elle-même teste les chaînes de ligne exactes et ne normalise pas les espaces avant les vérifications d'égalité.

Le plan appelle des fins de ligne cohérentes, mais `toLines` accepte déjà CRLF, LF et un seul CR comme séparateurs. La cohérence la plus importante est sémantique : les éléments équivalents doivent commencer et se terminer à des endroits équivalents. Évitez le retour à la ligne manuel à une largeur de page, car une marge modifiée peut alors se faire passer pour un contenu modifié.

Préparer les unités de ligne stables ; les CRLF mixtes, LF et CR solitaires sont déjà acceptés

Supposons que l'ancienne liste comporte trois lignes distinctes : "1. Livrer avant vendredi.", "2. L'acheteur peut inspecter les dossiers." et "3. Le paiement est dû dans 30 jours." La révision modifie uniquement la ligne du milieu en "2. L'acheteur doit inspecter les enregistrements". Conservez les trois clauses sur leurs propres lignes avant d'exécuter la comparaison.

Les première et troisième lignes restent des ancres égales. L'ancienne clause du milieu apparaît comme supprimée et la clause du milieu révisée apparaît comme ajoutée, laissant à l'administrateur une paire ciblée à examiner. Si les mêmes clauses étaient collées sous forme de prose redistribuée, une différence d'enveloppement pourrait briser ces ancres et agrandir l'ensemble de modifications apparentes.

Ce que cela ne couvre pas : fusions à trois voies, détection de blocs déplacés et différences de documents formatés

Cette comparaison n'effectue pas de fusion à trois, elle ne peut donc pas rapprocher deux descendants modifiés avec une version de base partagée. Il n'a pas non plus de classification de blocs déplacés : le déplacement d'une clause peut apparaître comme une suppression à son ancienne position et un ajout à sa nouvelle position, même lorsque son texte n'est pas modifié.

Les documents formatés introduisent une autre limite. Les polices, les modifications suivies, les tableaux, les commentaires et la mise en page ne sont pas représentés dans des chaînes simples transmises à `diffLines`. Extrayez et structurez d'abord le texte pertinent, tout en conservant les originaux pour une révision formelle. Un diff de texte utile complète les contrôles de documents ; il ne les remplace pas.

Ce qu'il faut retenir : la différence de Text Toolkit est basée sur les lignes de par sa conception ; préparez l'entrée et elle montre exactement quels éléments ont changé

Une différence de ligne est plus informative lorsque chaque ligne comporte une décision susceptible de révision. ToolAcre aligne les lignes exactes, préserve leur ordre et signale les éléments sans correspondance sous forme d'ajouts ou de suppressions. Cette conception est prévisible : une modification d'un seul mot affecte toute la ligne, tandis que les lignes identiques autour fournissent les ancres qui maintiennent le résultat compact.

Avant de comparer les listes de clauses, définissez les limites délibérées, supprimez les espaces de bord non pertinents et supprimez les lignes vides qui n'ajoutent aucune structure. Ensuite, ouvrez Text diff et inspectez les lignes adjacentes supprimées et ajoutées en tant que remplacement. Une bonne préparation ne change pas le contrat ; le rapport basé sur les lignes de l'algorithme correspond ainsi aux unités qui intéressent réellement un évaluateur.