Zeigen Sie Textunterschiede für Binärdateien auf GitHub an
Ich versuche, mit Git und GitHub eine Reihe von App-Konfigurationsdateien zu synchronisieren. Dies sind XML- oder Plist-Dateien, die in einem Binärformat gespeichert sind. Zum Beispiel eine Keyboard Maestro- .kmsyncDatei .
Ich kann diese Dateien über einen Texteditor öffnen , um ein XML-Format anzuzeigen.
Aber wenn ich diese Dateiunterschiede in einer GitHub-Pull-Anfrage, einer Commit-Ansicht usw. ansehe, sehe ich einen nutzlosen binären Unterschied ohne sichtbare Änderungen:
Anzeigen mit 0 Hinzufügungen und 0 Löschungen.
BIN +17 Bytes (100%)
Binärdatei wird nicht angezeigt.
Ich kann das textbasierte Diff lokal über Git über eine .gitattributesDatei anzeigen lassen . Es scheint jedoch, dass GitHub diese Änderungen nicht berücksichtigt:
GitHub verwendet keine .gitattributes-Dateien, um auszuwählen, welche Dateien in einem Diff angezeigt werden sollen. Daher ist es nicht möglich, dies auf diese Weise zu umgehen. [Quelle]
Ich möchte die textbasierten Änderungen und Zeilendifferenzen sehen, wenn ich diese Dateien auf GitHub in meinen Commits und Pull-Anfragen ansehe.
Zum Beispiel der GitHub PR hier. Fühlen Sie sich frei zu gabeln und zu experimentieren:
https://github.com/pkamb/so/pull/1
Wie kann ich die Webansicht eines GitHub -Repos davon überzeugen, für bestimmte "binäre" Dateien textbasiertes Diffing zu verwenden?
Ich kann keine vorhandene Frage für meine spezifische Frage finden (Anzeige eines nicht-binären Unterschieds auf GitHub ).
Die folgenden Fragen beziehen sich auf dasselbe Verhalten, jedoch auf lokales git(nicht GitHub).
- Überschreiben Sie die Auswahl der Binärdatei von git in Text
- Wie würden Sie ein AppleScript-Skript unter Versionskontrolle stellen?
Meine Frage ist das Gegenteil dieser Frage, bei der versucht wird, Textdateien als Binärdateien auf GitHub anzuzeigen:
- Lassen Sie github das "binäre" Attribut .gitattributes verwenden
Antworten
Es gibt keine Möglichkeit, GitHub zu zwingen, diese Dateien als Text anzuzeigen, da dies nicht der Fall ist. Wenn GitHub Dateien als Teil einer HTML-Seite rendert, müssen sie in einer bestimmten Codierung vorliegen, und die einzig vernünftige Wahl für Codierungen ist heutzutage UTF-8. Diese Dateien können nicht unverändert als UTF-8 angezeigt werden, da sie neben Steuerzeichen, die auf einer Webseite im Allgemeinen nicht gut gerendert werden können, Byte-Sequenzen enthalten, die in UTF-8 nicht gültig sind.
Es ist möglich, diese Dateien mithilfe einer .gitattributesDatei mithilfe des diffTyps und des diff.*.textconvAttributs in Ihrer Konfigurationsdatei in Text zu konvertieren, um sie zu unterscheiden . Dies funktioniert auf Ihrem Computer hervorragend, auf GitHub jedoch nicht. Erstens verfügt GitHub nicht über Ihr Tool zum Rendern von Dateien, und zweitens unterstützt GitHub keine externen Programme zum Rendern von Dateien im Allgemeinen, hauptsächlich aus Sicherheitsgründen. Einige gängige Formate werden unterstützt, dies ist jedoch keines davon.
Beachten Sie auch, dass das zu verwendende Programm in der Git-Konfiguration und nicht in der .gitattributesDatei gespeichert ist. Dies ist beabsichtigt, da der Versand einer Liste von Programmen, die im Repository ausgeführt werden sollen, ein Sicherheitsproblem darstellt. Daher kann GitHub möglicherweise nicht einmal das Programm kennen, das Sie hier verwenden würden.
Wenn Ihre kmsyncDateien ein einfaches Textäquivalent haben, das Sie in das Binärformat kompilieren können, können Sie dieses Format im Repository speichern und als Teil eines Erstellungsschritts erstellen. Das ist flexibel und bietet weiterhin die Binärformate, die Sie für Ihr Projekt verwenden können. Dies unterscheidet sich nicht vom Kompilieren von Code in Binärdateien oder von einfachem Text in PDFs.