Guide des fonctionnalités macOSWindows

Fusionnez trois versions et résolvez les marqueurs de conflit dans une seule fenêtre

Avec Pro, fusionnez trois versions d’un fichier dans une seule fenêtre et résolvez-y chaque conflit. Les fichiers JSON, YAML, TOML et INI sont fusionnés selon leurs données, valeur par valeur, en conservant les commentaires et la mise en forme de votre côté, avec des conflits uniquement là où les deux côtés ont modifié différemment la même valeur. Un fichier qui contient déjà des marqueurs de conflit de Git, Mercurial ou Subversion indique combien de conflits il contient ; avec Pro, « Résoudre » les ouvre dans l’espace de travail de fusion, et le fichier résolu est enregistré dans son propre encodage et ses propres fins de ligne. git mergetool ouvre chaque fichier en conflit dans la fenêtre de fusion de Diff Anything et attend « Enregistrer et fermer », avec la version du Microsoft Store sous Windows et, sur Mac, via l’outil en ligne de commande gratuit.

Aperçu des capacités

Comment puis-je utiliser l’outil de fusion à trois voies et de fusion git dans Diff Anything ?

Avec Pro, fusionnez trois versions d’un fichier dans une seule fenêtre et résolvez-y chaque conflit. Les fichiers JSON, YAML, TOML et INI sont fusionnés selon leurs données, valeur par valeur, en conservant les commentaires et la mise en forme de votre côté, avec des conflits uniquement là où les deux côtés ont modifié différemment la même valeur. Un fichier qui contient déjà des marqueurs de conflit de Git, Mercurial ou Subversion indique combien de conflits il contient ; avec Pro, « Résoudre » les ouvre dans l’espace de travail de fusion, et le fichier résolu est enregistré dans son propre encodage et ses propres fins de ligne. git mergetool ouvre chaque fichier en conflit dans la fenêtre de fusion de Diff Anything et attend « Enregistrer et fermer », avec la version du Microsoft Store sous Windows et, sur Mac, via l’outil en ligne de commande gratuit.

Voir les conflits dans un fichier est gratuit ; pour les résoudre, l’espace de travail de fusion, le pilote de fusion et l’outil de fusion font partie de Pro.

L’outil de fusion fonctionne également avec Mercurial, Subversion, Perforce et TFVC. Sous Windows, la version du Microsoft Store est elle-même l’outil de fusion.

La version du Mac App Store s’exécute dans l’App Sandbox d’Apple : un système de gestion de versions ne peut donc pas la lancer directement comme outil de fusion. Une fois l’outil en ligne de commande gratuit installé, les mêmes paramètres Git lancent l’outil, qui lit les fichiers, ouvre la fusion dans une fenêtre de l’application et écrit le fichier fusionné lorsque vous choisissez « Enregistrer et fermer ». Sans l’outil, ouvrez le fichier en conflit dans l’application et choisissez « Résoudre ».

Fusion à trois voies avec base, notre version, leur version et conflit à résoudre dans l’interface française de Diff Anything.
Fusion à trois voies avec base, notre version, leur version et conflit à résoudre dans l’interface française de Diff Anything. Afficher en taille réelle

L’espace de travail de fusion

Trois versions, un résultat modifiable

Une fusion nécessite trois versions : l’original commun (Base), votre version (La nôtre) et l’autre version (La leur). Placez le nôtre à gauche et le leur à droite, ouvrez Outils, choisissez Fusion à trois et sélectionnez ou collez Base. Les modifications apportées sur un seul côté sont automatiquement combinées, tout comme les modifications visant à séparer les mots de la même ligne. Tout le reste devient un conflit que vous décidez.

Parcourez les conflits et choisissez Accepter le nôtre, Accepter le leur, Le nôtre puis le leur, Le leur puis le nôtre, ou Utiliser la base, ou éditez directement le résultat. Le panneau Modifications affiche chaque côté par rapport à la base et le résultat conserve la coloration syntaxique du fichier.

Fusion de fichiers de données

JSON, YAML, TOML et INI fusionnent valeur par valeur

Deux personnes modifiant des paramètres différents du même fichier de configuration touchent souvent des lignes voisines, et une fusion de lignes signale un conflit là où il n’y en a pas. Diff Anything fusionne les fichiers JSON, YAML, TOML et INI en fonction de leurs données : une valeur modifiée d’un seul côté prend ce changement où qu’elle se trouve, une valeur modifiée de la même manière par les deux côtés est prise une fois, et seule une valeur modifiée différemment par les deux côtés constitue un conflit, nommé par son chemin, tel que $.server.port.

Les listes d’enregistrements avec un identifiant, un _id, un uuid ou un champ clé fusionnent enregistrement par enregistrement. L’ordre des clés, l’indentation et les citations ne sont jamais en conflit. Le résultat est écrit dans le texte de votre côté, donc ses commentaires et sa mise en forme restent, et l’espace de travail indique comment il a fusionné, par exemple "Fusionné par les données : 3 modifications par rapport aux nôtres et 1 modification par rapport aux leurs ; 1 conflit sur $.server.port". La fusion par données passe à la fusion de lignes, et un fichier qui n’est pas valide dans son format est fusionné par lignes, avec le motif.

Marqueurs de conflit

Résolution d’un fichier déjà marqué par Git

Lorsque Git, Mercurial ou Subversion ne peuvent pas fusionner un fichier, il y écrit les deux versions entre des marqueurs de conflit. Ouvrez un tel fichier dans Diff Anything, de chaque côté d’une comparaison, et il affiche "Ce fichier a N conflits de fusion" avec Resolve.

Resolve ouvre exactement ces conflits dans l’espace de travail de fusion ; chaque ligne en dehors d’eux reste telle que le système de contrôle de version l’a fusionnée. Lorsque les marqueurs enregistrent une base (style diff3 ou zdiff3 de Git), Utiliser la base peut la choisir. Enregistrer le fichier résolu écrit le résultat dans le même fichier avec son propre encodage, son ordre d’octet et ses fins de ligne, et demande d’abord quand le fichier a changé sur le disque. Les marqueurs qui ne forment pas des conflits complets sont signalés avec leur ligne au lieu d’être devinés.

Outil de fusion Git

git mergetool ouvre la fusion dans une fenêtre

Diff Anything peut être l’outil de fusion de Git : la version du Microsoft Store sous Windows directement, et la version du Mac App Store via l’outil en ligne de commande gratuit. git mergetool le lance pour chaque fichier en conflit et attend : la fenêtre affiche les versions de base, locale et distante ainsi que le résultat, en partant des conflits laissés par Git, de sorte que chaque ligne fusionnée par Git est conservée. « Enregistrer et fermer » (Commande-S ou Contrôle-S) écrit le fichier fusionné et quitte avec le code 0, ce que Git considère comme résolu ; « Annuler » ou la fermeture de la fenêtre quitte avec le code 1 et laisse le fichier tel que Git l’a écrit. Un résultat contenant des conflits non résolus n’est enregistré qu’après confirmation.

Le pilote de fusion, défini avec merge.diff-anything.driver et attribué dans .gitattributes, fusionne de la même manière sans fenêtre à chaque fois que Git fusionne, en écrivant des marqueurs de conflit uniquement autour des valeurs modifiées différemment par les deux côtés. L’outil de fusion fonctionne également avec Mercurial, Subversion, Perforce et TFVC, et --cli --integration-help imprime les paramètres.

La version du Mac App Store s’exécute dans l’App Sandbox d’Apple, qui ne lui permet pas de lire les fichiers indiqués par un système de gestion de versions : elle n’est donc pas lancée elle-même comme outil de fusion. Sur Mac, installez l’outil en ligne de commande gratuit : les mêmes paramètres Git lancent alors l’outil, qui lit les fichiers, ouvre la fusion dans une fenêtre de l’application, en lançant l’application si elle n’est pas ouverte, et écrit le fichier fusionné, dans l’encodage de la version locale, lorsque vous choisissez « Enregistrer et fermer ». Plusieurs fusions peuvent être ouvertes en même temps, chacune dans sa propre fenêtre. Sans l’outil, ouvrez le fichier en conflit dans l’application et choisissez « Résoudre ».

  • git config --global merge.tool diff-anything
  • git config --global mergetool.diff-anything.cmd 'diff-anything --merge-tool "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
  • git config --global mergetool.diff-anything.trustExitCode true

Gratuit et Pro

Ce que comprend le forfait gratuit

Voir les conflits dans un fichier est gratuit, dans l’application et avec --cli --conflicts sur la ligne de commande. L’espace de travail de fusion, la résolution des conflits, le pilote de fusion et l’outil de fusion font partie de Pro. Sur le plan gratuit, la fenêtre de l’outil de fusion propose Pro et se ferme sans modifier le fichier fusionné.

Dans le workflow

Comment l’utiliser

  1. Ouvrir le fichier en conflit

    Ouvrez un fichier avec des marqueurs de conflit dans l’application ou laissez git mergetool lancer Diff Anything : directement sous Windows, via l’outil en ligne de commande sur Mac.

  2. Choisissez Résoudre

    Les conflits s’ouvrent dans l’espace de travail de fusion, avec une ligne sur deux au fur et à mesure que le système de contrôle de version la fusionne.

  3. Décider de chaque conflit

    Acceptez le nôtre, Acceptez le leur, dans l’un ou l’autre ordre, ou Utilisez la base, ou modifiez le résultat à la main.

  4. Enregistrer

    Enregistrer le fichier résolu, ou Enregistrer et fermer dans la fenêtre de l’outil de fusion, écrit le fichier dans son propre encodage et ses propres fins de ligne.

Utile en pratique

Quand l’utiliser

Manuel associé

Choisir le bon type de comparaison

Choisir les sources, comprendre la détection automatique et prendre le type de comparaison qui répond à votre question.

Lire le guide

Réponses directes

Questions sur la fusion à trois voies et l’outil de fusion git.

Diff Anything fusionne-t-il JSON et YAML en fonction de leurs données ?

Oui. Les fichiers JSON, YAML, TOML et INI sont fusionnés valeur par valeur, avec des conflits uniquement lorsque les deux parties ont modifié la même valeur différemment. La fusion par données passe à une fusion de lignes lorsque vous en souhaitez une.

Puis-je résoudre un fichier qui contient déjà des marqueurs <<<<<<<  ?

Oui, avec Pro. Ouvrez le fichier et choisissez Résoudre. Ses conflits s’ouvrent dans l’espace de travail de fusion et le fichier résolu est enregistré dans son propre codage et ses propres fins de ligne.

Diff Anything peut-il être mon outil de fusion Git sur un Mac ?

Oui, avec Pro et l’outil en ligne de commande gratuit. La version du Mac App Store ne peut pas lire seule les fichiers que Git transmet à un outil de fusion ; l’outil en ligne de commande les lit et ouvre la fusion dans une fenêtre de l’application. Sans l’outil, résolvez les fichiers en conflit en les ouvrant dans l’application. Sur Windows, la version du Microsoft Store est l’outil de fusion.

Avec quels systèmes de contrôle de versions l’outil de fusion fonctionne-t-il ?

Git, Mercurial, Subversion, Perforce et TFVC, avec la version du Microsoft Store sous Windows et avec l’outil en ligne de commande sur Mac. Exécutez diff-anything --cli --integration-help pour obtenir les paramètres de chacun.

Gratuit & Pro : ce qui est inclus

Disponible sur le Mac App Store et le Microsoft Store. L’utilisation de la version gratuite de l’app vous permet d’essayer tous les moteurs de comparaison pour des fichiers jusqu’à 5 Mo par côté et 10 nouvelles sessions de comparaison par jour local ; les aperçus de collection affichent les 100 premiers éléments, les comparaisons binaires les 100 premières différences d’octets et les aperçus PDF les 3 premières pages. La comparaison du texte brut, du JSON et des notebooks Jupyter est complète, et l’ouverture de fichiers à partir du Finder ou de l’Explorateur de fichiers, les liens diffanything:// et AppleScript sont gratuits. La CLI gratuite prend en charge le texte, le JSON et les notebooks, et l’outil en ligne de commande qui apporte la CLI à la version du Mac App Store se télécharge gratuitement et utilise l’achat Pro effectué dans l’app. Un achat Pro unique supprime les limites d’aperçu et de session et déverrouille des sources plus volumineuses dans les limites techniques, les profils et l’historique enregistrés, l’enregistrement des instantanés de dossiers, l’exportation et l’impression de rapports, l’exportation de JSON Patch, l’application de correctifs, la fusion à trois voies et la résolution des conflits, le pilote de fusion et l’outil de fusion Git, la synchronisation des dossiers, les manifestes de lot, tous les modes CLI et, sous Windows, les préprocesseurs de confiance.

Suivant

Voir toutes les fonctionnalités de Diff Anything.

Retour aux fonctionnalités