Funktionsübersicht
Wie kann ich cli, git und ci in Diff Anything verwenden?
Unter Windows vergleicht die kostenlose Befehlszeile Text, JSON und Jupyter-Notebooks mit Terminal-, Zusammenfassungs- oder JSON-Ausgabe. Pro schaltet jeden Vergleichstyp frei, dazu Berichte, das Anwenden von Patches, Batch-Manifeste mit JUnit- oder SARIF-Ausgabe, den Merge-Treiber und das Merge-Tool. git difftool und der Git-Diff-Treiber funktionieren schon in der kostenlosen Version. Die Version aus dem Mac App Store läuft in Apples App-Sandbox, die sie auf Dateien und Ordner beschränkt, die Sie in der App wählen; Befehlszeile, Git und CI beschreiben wir deshalb für Windows. Mit Pro berücksichtigt --fail-on breaking nur inkompatible oder nicht klassifizierte API-Schemaänderungen.
Die Microsoft Store-Version auf Windows stellt den Befehl diff-anything.exe bereit und ist selbst das Zusammenführungstool, das Git, Mercurial, Subversion, Perforce und TFVC starten. Die Mac App Store-Version läuft in der App Sandbox von Apple, die sie auf Dateien und Ordner beschränkt, die Sie in der App auswählen. Daher wird die Verwendung von Befehlszeile, Git und CI für Windows beschrieben. Öffnen Sie auf einem Mac eine in Konflikt stehende Datei in der App, um das Problem zu beheben.

Ausführen des CLI
Die installierte App ist auch das Befehlszeilentool
Starten Sie die ausführbare Datei Diff Anything mit --cli gefolgt von zwei Pfaden, oder lassen Sie Git sie als Diff-Treiber ausführen. Auf Windows stellt das Paket Microsoft Store einen Befehl diff-anything.exe bereit. Verwenden Sie --mode, um Auto, Text, JSON, Yaml, ToML, INI, Plist, XML, CSV, Env, http, API, Notebook, SQLite, Ordner, Archiv, Dokument oder Binärdatei auszuwählen und -- vor Dateinamen einzufügen, die mit einem Bindestrich beginnen. --help listet alle Optionen auf und --version gibt die installierte Version aus.
Es gibt drei Ausgabeformate. terminal zeigt einen Vergleich mit Zeilennummern und Syntaxhervorhebung; --color auto, always oder never steuert die Farben. summary gibt eine kurze Zusammenfassung der Anzahlen aus, json das vollständige Ergebnis für Skripte. Ein interaktives Terminal verwendet standardmäßig terminal, eine umgeleitete Ausgabe summary.
Mit --exit-code gibt der Befehl 1 zurück, wenn Unterschiede gefunden werden, und 0, wenn keine vorhanden sind. Eine ungültige Eingabe gibt 2 zurück.
Kostenlos und Pro
Was im kostenlosen Plan läuft
Die kostenlose Befehlszeile vergleicht Text-, JSON- und Jupyter-Notebookdateien mit bis zu 5 MB pro Seite, und jeder Lauf zählt für die 10 neuen Vergleichssitzungen pro Tag. Andere Modi, einschließlich einer automatischen Ausführung, die in einen anderen Modus auflöst, berichten, dass sie in Pro enthalten sind.
Pro schaltet alle Modi, Batch-Manifeste und das Git-Merge-Tool frei. Die Befehlszeile verwendet die von der Desktop-App für dasselbe Benutzerkonto aufgezeichnete Pro-Entsperrung. Öffnen Sie die App also einmal auf diesem Computer, um Pro zu kaufen oder wiederherzustellen.
Git
Verwendung als Difftool, Merge-Treiber und Mergetool von Git
Führen Sie die ausführbare Datei mit --cli --integration-help aus, um vorgefertigte Git-Einstellungen zu drucken. Um Änderungen anzuzeigen, setzen Sie diff.tool auf diff-anything und difftool.diff-anything.cmd, um die App mit --cli --format terminal --color auto "$LOCAL" "$REMOTE" aufzurufen. git difftool zeigt dann jede geänderte Datei mit Hervorhebung an. Damit Git Diff selbst die App für ausgewählte Dateitypen verwendet, legen Sie diff.diff-anything.command fest und weisen Sie den Treiber in .gitattributes zu, zum Beispiel *.json diff=diff-anything; Lassen Sie --exit-code weg.
Mit Pro führt der Zusammenführungstreiber die Dateien zusammen, die Sie ihm mit merge=diff-anything zuweisen: JSON, YAML, TOML und INI-Dateien nach ihren Daten, anderer Text nach Zeilen, und gibt 1 zurück, solange Konflikte bestehen bleiben. Setzen Sie merge.tool auf diff-anything und mergetool.diff-anything.cmd auf diff-anything --merge-tool "$BASE" "$LOCAL" "$REMOTE" "$MERGED", und git mergetool öffnet jede in Konflikt stehende Datei im Zusammenführungsfenster von Diff Anything. „Save & Close“ schreibt das Ergebnis und teilt Git mit, dass die Datei aufgelöst wurde; Abbrechen belässt es so, wie Git es geschrieben hat.
Charge und CI
Viele Vergleiche in einem Job ausführen (Pro)
Ein Batch-Manifest ist eine YAML- oder JSON-Datei mit einer Vergleichsliste. Jeder Eintrag hat einen linken und einen rechten Pfad und optional einen Namen, einen Modus und failOn: Breaking für API-Schemafälle, die dann nur bei Breaking oder nicht klassifizierten Änderungen fehlschlagen. Führen Sie es mit --batch aus und wählen Sie --format summary, json, junit oder sarif. Ein Manifest kann Modi mischen, zum Beispiel eine JSON-Konfigurationsprüfung, einen Ordnervergleich einer Build-Ausgabe und eine Binärprüfung eines Installationsprogramms. Geänderte Fälle und Fälle, die nicht gelesen werden konnten, werden separat gezählt, und der Befehl gibt 1 zurück, wenn ein Fall die FailOn-Prüfung nicht besteht oder nicht verglichen werden konnte.
Die JUnit-Ausgabe meldet fehlgeschlagene Fälle als Fehler und Leseprobleme als Fehler, die die meisten CI-Systeme als Testergebnisse anzeigen; Für API-Fälle werden die Breaking Changes mit ihren Regelcodes aufgelistet. Die SARIF-Ausgabe meldet jeden API-Befund unter seinem Regelcode und jeden anderen geänderten oder fehlgeschlagenen Fall in seiner rechten Datei. Schreiben Sie einen der beiden Berichte mit --output FILE. Jeder Fall verwendet den Standardvergleich seines Modus, da in der App festgelegte Regeln nicht von der Befehlszeile gelesen werden. Das gleiche Manifest kann in der App unter „Extras“, „Stapelmanifest“ geöffnet, bearbeitet und ausgeführt werden.
Im Workflow
So verwenden Sie es
Suchen Sie den Befehl
Verwenden Sie auf Windows diff-anything.exe. Überprüfen Sie es mit --cli --version.
Versuchen Sie einen Vergleich
Vergleichen Sie zwei Dateien mit --format terminal. Fügen Sie für die Verwendung in einem Skript --exit-code hinzu.
Git verbinden
Kopieren Sie die Einstellungen von --integration-help und führen Sie bei Ihrer nächsten Änderung git difftool aus.
Automatisieren Sie mit einem Manifest
Listen Sie mit Pro Ihre Vergleiche in einem Manifest auf und führen Sie --batch mit JUnit- oder SARIF-Ausgabe aus.
Nützlich in der Praxis
Wann man es verwenden sollte
Zugehöriges Handbuch
Diff Anything mit Befehlszeile, Git und CI nutzen
Unter Windows Vergleiche wiederholbar ausführen, Exit-Codes verstehen, Git einbinden und maschinenlesbare Ergebnisse für CI erzeugen.
Lesen Sie den LeitfadenDirekte Antworten
Fragen zu CLI, Git und CI.
Welche Exit-Codes werden verwendet?
Bei --exit-code bedeutet 0, dass keine Unterschiede vorhanden sind, und 1, dass Unterschiede gefunden wurden. Eine ungültige Eingabe gibt 2 zurück. Ein Batch-Lauf wird mit 1 beendet, sobald sich einer seiner Fälle geändert hat oder nicht gelesen werden konnte.
Warum schlägt mein YAML-Vergleich im kostenlosen Plan fehl?
Im kostenlosen Plan werden nur die Text-, JSON- und Notebook-Modi über die Befehlszeile ausgeführt. YAML und jeder andere Modus benötigen Pro.
Kann ich Diff Anything als Git-Merge-Tool auf einem Mac verwenden?
Nicht mit der Mac App Store-Version, die in Apples App Sandbox läuft und die Dateinamen Git nicht lesen kann. Öffnen Sie die Konfliktdatei in der App und wählen Sie stattdessen „Auflösen“. Auf Windows ist die Version Microsoft Store das Zusammenführungstool.
Verwendet die Befehlszeile die Regeln, die ich in der App festgelegt habe?
Nein. Es wird der Standardvergleich jedes Modus verwendet. Speichern Sie die Regeln in einem Profil und öffnen Sie es in der App, wenn Sie sie benötigen.
Woher weiß die Befehlszeile, dass ich Pro habe?
Es liest die Pro-Entsperrung, die von der Desktop-App für denselben Benutzer gespeichert wurde. Kaufen oder wiederherstellen Sie zunächst Pro in der App auf diesem Computer.
Kostenlos & Pro: Was ist enthalten
Verfügbar im Mac App Store und Microsoft Store. Mit der kostenlosen Desktop-Nutzung können Sie jede Vergleichs-Engine für Dateien bis zu 5 MiB pro Seite und 10 neue Vergleichssitzungen pro lokalem Tag ausprobieren; Sammlungsvorschauen zeigen die ersten 100 Elemente, binäre Vergleiche die ersten 100 Byte-Unterschiede und PDF-Vorschauen die ersten drei Seiten. Der Nur-Text-, JSON- und Jupyter-Notebook-Vergleich ist vollständig und das Öffnen von Dateien über den Finder oder den Datei-Explorer, diffanything://-Links und AppleScript ist kostenlos. Die kostenlose CLI unterstützt Text, JSON und Notebooks. Durch einen einmaligen Pro-Kauf werden die Vorschau- und Sitzungsbeschränkungen aufgehoben und größere Quellen innerhalb technischer Grenzen, gespeicherte Profile und Verlauf, Speichern von Ordner-Snapshots, Exportieren und Drucken von Berichten, JSON-Patch-Export, Anwenden von Patches, Drei-Wege-Zusammenführung und Konfliktlösung, der Git-Merge-Treiber und das Merge-Tool, Ordnersynchronisierung, Batch-Manifeste, vertrauenswürdige Präprozessoren und alle CLI-Modi freigeschaltet.