Guide des fonctionnalités macOSWindows

Utiliser le même modèle de comparaison privé de Git et CI

Sous Windows, la ligne de commande gratuite compare le texte, le JSON et les notebooks Jupyter, avec une sortie pour le terminal, un résumé ou du JSON. Pro débloque tous les types de comparaison, les rapports, l’application de patchs, les manifestes de lot avec sortie JUnit ou SARIF, le pilote de fusion et l’outil de fusion. git difftool et le pilote de diff de Git fonctionnent dès la version gratuite. La version du Mac App Store s’exécute dans l’App Sandbox d’Apple, qui la limite aux fichiers et dossiers que vous choisissez dans l’app ; la ligne de commande, Git et la CI sont donc décrits pour Windows. Avec Pro, --fail-on breaking compte uniquement les changements de schéma d’API incompatibles ou non classés.

Aperçu des capacités

Comment puis-je utiliser cli, git et ci dans Diff Anything ?

Sous Windows, la ligne de commande gratuite compare le texte, le JSON et les notebooks Jupyter, avec une sortie pour le terminal, un résumé ou du JSON. Pro débloque tous les types de comparaison, les rapports, l’application de patchs, les manifestes de lot avec sortie JUnit ou SARIF, le pilote de fusion et l’outil de fusion. git difftool et le pilote de diff de Git fonctionnent dès la version gratuite. La version du Mac App Store s’exécute dans l’App Sandbox d’Apple, qui la limite aux fichiers et dossiers que vous choisissez dans l’app ; la ligne de commande, Git et la CI sont donc décrits pour Windows. Avec Pro, --fail-on breaking compte uniquement les changements de schéma d’API incompatibles ou non classés.

La version du Microsoft Store sur Windows fournit la commande diff-anything.exe et est elle-même l’outil de fusion lancé par Git, Mercurial, Subversion, Perforce et TFVC.

La version du Mac App Store s’exécute dans l’App Sandbox d’Apple : son propre exécutable ne peut donc pas lire les fichiers indiqués sur une ligne de commande. Sur Mac, installez l’outil en ligne de commande gratuit de Diff Anything, un téléchargement notarié proposé sur ce site plutôt que sur le Mac App Store : il place diff-anything dans /usr/local/bin, exécute les mêmes commandes, paramètres Git et manifestes de lot, et ouvre les fusions de git mergetool dans une fenêtre de l’application. L’outil dispose de Pro lorsque Pro a été acheté ou restauré dans l’application sur le même Mac ; sans Pro, il fonctionne comme la CLI gratuite.

Diff Anything en français : choisir des fichiers, des dossiers ou du texte collé comme sources.
Diff Anything en français : choisir des fichiers, des dossiers ou du texte collé comme sources. Afficher en taille réelle

Exécution du CLI

L’application installée est également l’outil de ligne de commande

Démarrez l’exécutable Diff Anything avec --cli suivi de deux chemins, ou laissez Git l’exécuter en tant que pilote de diff. Sur Windows, le package du Microsoft Store fournit une commande diff-anything.exe. Sur Mac, installez l’outil en ligne de commande gratuit, qui place diff-anything dans /usr/local/bin et n’a pas besoin de --cli, mais l’accepte. Utilisez --mode pour choisir auto, text, json, yaml, toml, ini, plist, xml, csv, env, http, api, notebook, sqlite, folder, archive, document ou binary, et placez -- avant les noms de fichiers qui commencent par un tiret. --help liste toutes les options et --version affiche la version installée.

Trois formats de sortie sont disponibles. terminal affiche la comparaison avec coloration syntaxique et numéros de ligne ; --color auto, always ou never contrôle les couleurs. summary fournit un bref décompte et json le résultat complet pour les scripts. Par défaut, un terminal interactif utilise terminal et une sortie redirigée utilise summary.

Avec --exit-code, la commande renvoie 1 lorsque des différences sont trouvées et 0 lorsqu’il n’y en a pas. Une entrée invalide renvoie 2.

Sur un Mac

L’outil en ligne de commande pour la version du Mac App Store

La version du Mac App Store s’exécute dans l’App Sandbox d’Apple, qui ne lui permet de lire que les fichiers que vous ouvrez dans l’application : son propre exécutable ne peut donc pas lire les fichiers indiqués par une commande. Lancé depuis le Terminal, il indique d’installer l’outil et quitte avec le code 2. L’outil est la même ligne de commande, compilée comme un programme distinct qui s’exécute en dehors du bac à sable : chaque commande, paramètre Git et manifeste de lot de cette page fonctionne donc avec lui sans changement. « Réglages > Ligne de commande » dans l’application renvoie vers l’outil et affiche les paramètres Git.

C’est un programme d’installation gratuit proposé sur ce site, et non sur le Mac App Store, signé avec un Developer ID et notarié par Apple, pour les Mac Apple silicon et Intel sous macOS 13 ou version ultérieure avec Diff Anything 1.7 ou version ultérieure installé depuis le Mac App Store. En tant qu’outil de fusion, il lit les fichiers indiqués par Git, 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é lorsque vous choisissez « Enregistrer et fermer ». diff-anything --compare-paths ouvre un ou deux fichiers ou dossiers dans l’application. L’outil n’utilise jamais le réseau, et sudo /usr/local/lib/diff-anything/uninstall le supprime.

Gratuit et Pro

Ce qui fonctionne avec le forfait gratuit

La ligne de commande gratuite compare les fichiers de notebook texte, JSON et Jupyter jusqu’à 5 Mo par côté, et chaque exécution compte dans les 10 nouvelles sessions de comparaison par jour. D’autres modes, y compris une exécution automatique qui passe à un autre mode, signalent qu’ils sont inclus avec Pro.

Pro déverrouille tous les modes, les manifestes par lots et l’outil de fusion Git. La ligne de commande utilise le déverrouillage Pro enregistré par l’application de bureau pour le même compte utilisateur, alors ouvrez l’application une fois sur cet ordinateur pour acheter ou restaurer Pro.

Sur Mac, l’outil en ligne de commande dispose de Pro lorsque Pro a été acheté ou restauré dans l’application sur le même Mac, sous le même utilisateur macOS : l’application conserve l’enregistrement signé de l’achat fourni par l’App Store dans un dossier qu’elle partage avec l’outil, et l’outil vérifie hors ligne la signature d’Apple sur cet enregistrement. Après un achat ou une restauration, ouvrez l’application une fois avant d’utiliser Pro en ligne de commande. Sans Pro, l’outil fonctionne comme la ligne de commande gratuite, avec 10 comparaisons par jour comptées séparément, et diff-anything --pro-status indique pourquoi Pro n’a pas été trouvé.

Git

Utilisation comme outil de comparaison, pilote de fusion et outil de fusion de Git

Exécutez l’exécutable avec --cli --integration-help pour imprimer les paramètres Git prêts à l’emploi. Pour afficher les modifications, définissez diff.tool sur diff-anything et difftool.diff-anything.cmd pour appeler l’application avec --cli --format terminal --color auto "$LOCAL" "$REMOTE". git difftool affiche ensuite chaque fichier modifié en surbrillance. Pour que git diff lui-même utilise l’application pour les types de fichiers choisis, définissez diff.diff-anything.command et attribuez le pilote dans .gitattributes, par exemple *.json diff=diff-anything ; laissez --exit-code en dehors.

Avec Pro, le pilote de fusion fusionne les fichiers que vous lui attribuez avec merge=diff-anything : les fichiers JSON, YAML, TOML et INI par leurs données, les autres textes par lignes, renvoyant 1 tant que les conflits subsistent. Définissez merge.tool sur diff-anything et mergetool.diff-anything.cmd sur diff-anything --merge-tool "$BASE" "$LOCAL" "$REMOTE" "$MERGED", et git mergetool ouvre chaque fichier en conflit dans la fenêtre de fusion de Diff Anything. Save & Close écrit le résultat et indique à Git que le fichier est résolu ; Annuler le laisse tel que Git l’a écrit.

Lot et CI

Exécution de plusieurs comparaisons dans une seule tâche (Pro)

Un manifeste de lots est un fichier YAML ou JSON avec une liste de comparaisons. Chaque entrée a un chemin gauche et droit, et éventuellement un nom, un mode et failOn :break pour les cas de schéma API, qui échouent ensuite uniquement en cas de rupture ou de modifications non classifiées. Exécutez-le avec --batch et choisissez --format summary, json, junit ou sarif. Un manifeste peut mélanger des modes, par exemple une vérification de configuration JSON, une comparaison de dossiers d’une sortie de build et une vérification binaire d’un programme d’installation. Les cas modifiés et les cas qui n’ont pas pu être lus sont comptés séparément, et la commande renvoie 1 si un cas échoue à sa vérification failOn ou n’a pas pu être comparé.

La sortie JUnit signale les cas d’échec comme des échecs et lit les problèmes comme des erreurs, que la plupart des systèmes CI affichent comme résultats de test ; pour les cas API, il répertorie les modifications incompatibles avec leurs codes de règle. La sortie SARIF rapporte chaque résultat API sous son code de règle, ainsi que chaque cas modifié ou échoué par rapport à son fichier de droite. Écrivez l’un ou l’autre rapport avec --output FILE. Chaque cas utilise la comparaison par défaut de son mode, car les règles définies dans l’application ne sont pas lues par la ligne de commande. Le même manifeste peut être ouvert, modifié et exécuté dans l’application sous Outils, Manifeste par lots.

Dans le workflow

Comment l’utiliser

  1. Rechercher la commande

    Sur Windows, utilisez diff-anything.exe. Sur Mac, installez l’outil en ligne de commande gratuit et utilisez diff-anything. Vérifiez-le avec --cli --version.

  2. Essayez une comparaison

    Comparez deux fichiers avec --format terminal, puis ajoutez --exit-code pour une utilisation dans un script.

  3. Connectez Git

    Copiez les paramètres de --integration-help et exécutez git difftool lors de votre prochaine modification.

  4. Automatisez avec un manifeste

    Avec Pro, répertoriez vos comparaisons dans un manifeste et exécutez --batch avec la sortie JUnit ou SARIF.

Utile en pratique

Quand l’utiliser

Manuel associé

Utiliser Diff Anything en ligne de commande, avec Git et en CI

Sous Windows, lancer des comparaisons reproductibles, comprendre les codes de sortie, intégrer Git et produire des résultats lisibles par une machine pour la CI.

Lire le guide

Réponses directes

Questions sur cli, git et ci.

Quels codes de sortie utilise-t-il ?

Avec --exit-code, 0 signifie aucune différence et 1 signifie que des différences ont été trouvées. Une entrée invalide renvoie 2. Une exécution par lots se termine avec 1 dès que l’un de ses cas a changé ou n’a pas pu être lu.

Pourquoi ma comparaison YAML échoue-t-elle avec le forfait gratuit ?

Sur le forfait gratuit, seuls les modes texte, json et notebook s’exécutent à partir de la ligne de commande. YAML et tous les autres modes nécessitent Pro.

Puis-je utiliser la ligne de commande avec la version du Mac App Store ?

Oui, avec l’outil en ligne de commande gratuit. L’exécutable propre à l’application s’exécute dans l’App Sandbox d’Apple et ne peut pas lire les fichiers indiqués par une commande : il se contente donc d’indiquer d’installer l’outil. L’outil installe diff-anything dans /usr/local/bin et exécute chaque commande, paramètre Git et manifeste de lot écrit pour diff-anything, avec l’achat Pro effectué dans l’application sur le même Mac.

Puis-je utiliser Diff Anything comme outil de fusion de 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 indiqués par Git ; l’outil en ligne de commande les lit, 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 ». Sous Windows, la version du Microsoft Store est l’outil de fusion.

La ligne de commande utilise-t-elle les règles que j’ai définies dans l’application ?

Non. Il utilise la comparaison par défaut de chaque mode. Enregistrez les règles dans un profil et ouvrez-le dans l’application lorsque vous en avez besoin.

Comment la ligne de commande sait-elle que j’ai Pro ?

Sous Windows, il lit le déverrouillage Pro stocké par l’application de bureau pour le même utilisateur. Sur Mac, l’outil en ligne de commande vérifie hors ligne l’enregistrement signé de l’achat fourni par l’App Store, que l’application conserve pour le même utilisateur macOS. Achetez ou restaurez d’abord Pro dans l’application sur cet ordinateur ; sur Mac, ouvrez ensuite l’application une fois.

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