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 fusionnent par leurs données, valeur par valeur, en conservant les commentaires et le formatage de votre côté, avec des conflits uniquement lorsque les deux côtés ont modifié la même valeur différemment. Un fichier qui contient déjà des marqueurs de conflit de Git, Mercurial ou Subversion indique le nombre de conflits dont il dispose ; avec Pro, Resolve 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. Sur Windows, git mergetool ouvre chaque fichier en conflit dans la fenêtre de fusion de Diff Anything et attend l’enregistrement et la fermeture.

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 fusionnent par leurs données, valeur par valeur, en conservant les commentaires et le formatage de votre côté, avec des conflits uniquement lorsque les deux côtés ont modifié la même valeur différemment. Un fichier qui contient déjà des marqueurs de conflit de Git, Mercurial ou Subversion indique le nombre de conflits dont il dispose ; avec Pro, Resolve 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. Sur Windows, git mergetool ouvre chaque fichier en conflit dans la fenêtre de fusion de Diff Anything et attend l’enregistrement et la fermeture.

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 sur Windows. La version Mac App Store s’exécute dans App Sandbox d’Apple et ne peut pas être démarrée en tant qu’outil de fusion par un système de contrôle de version ; sur un Mac, ouvrez le fichier en conflit dans l’application et choisissez Résoudre.

Espace de travail de fusion à trois voies Diff Anything montrant les nôtres et les leurs contre la base avec un conflit non résolu
Avec Pro, comparez chaque côté avec Base, concentrez-vous sur les lignes modifiées, parcourez les conflits et modifiez le résultat fusionné dans un seul espace de travail. 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 (Windows)

Sur Windows, la version Microsoft Store peut être l’outil de fusion de Git. git mergetool le démarre pour chaque fichier en conflit et attend : la fenêtre affiche les versions de base, locale et distante et le résultat, en commençant par les conflits Git restants, donc chaque ligne Git fusionnée est conservée. Enregistrer et fermer (Contrôle-S) écrit le fichier fusionné et quitte avec 0, ce que Git considère comme résolu ; Annuler ou fermer la fenêtre quitte avec 1 et laisse le fichier tel que Git l’a écrit. Un résultat avec 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 Mac App Store s’exécute dans l’App Sandbox d’Apple, ce qui ne lui permet pas de lire les fichiers nommés par un système de contrôle de version, elle ne peut donc pas être démarrée en tant qu’outil de fusion. Sur un Mac, 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 démarrer Diff Anything sur Windows.

  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 ?

Pas avec la version Mac App Store, qui ne peut pas lire les fichiers que Git transmet à un outil de fusion. Résolvez les fichiers en conflit en les ouvrant dans l’application. Sur Windows, la version 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, sur Windows. Exécutez diff-anything --cli --integration-help pour 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 premiers octets de différences et les aperçus PDF des 3 premières pages. La comparaison du texte brut, des notebooks JSON et Jupyter est complète et l’ouverture de fichiers à partir du Finder ou de l’Explorateur de fichiers, des liens diffanything:// et AppleScript est gratuite. La CLI gratuite prend en charge le texte, JSON et les notebooks. 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 correctifs JSON, 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 par lots, les préprocesseurs de confiance et chaque mode CLI.

Suivant

Voir toutes les fonctionnalités de Diff Anything.

Retour aux fonctionnalités