Git und Word - Versionsvergleich von docx-Dateien
Git kann auch binäre Dateiformate, wie z.B. das Dateiformat docx, in seinen Repositories verwalten und die Versionsverwaltung übernehmen. Ein kleines Problem besteht bei den Vergleichen (diff) der Versionen. Git ist eigentlich dafür gedacht reine Flat files zu managen und nicht für binäre Dateien. Mit ein paar kleinen Handgriffen ist es jedoch möglich Git und Word miteinander zu verbinden. Vergleiche zwischen Versionen von verwalteten docx
-Dateien ist damit sehr einfach möglich. Durch die Verwendung von Git zur Versionsverwaltung von Word-Dateien (docx) ermöglicht es den Benutzern die Vorzüge von Git zu nutzen.
Öffnet man eine docx-Datei auf einem Ubuntu, ohne einem installierten Textverarbeitungsprogramm wie LibreOffice Writer, dann wird die Datei entpackt. Man sieht dann sehr schön die Dateistruktur und erkennt auch sehr gut, weshalb der Vergleich von Dateien nicht so einfach ist, wie bei Flat files.
Es gibt dabei zwei Möglichkeiten in Git Änderungen an Word-Dateien zu verfolgen und zu vergleichen.
1. Möglichkeit - Git Bash
Bei dieser Möglichkeit wird Git Bash, also das Terminal, für den Vergleich von Word-Datei-Versionen verwendet. Eine grafische Darstellung ist hier nicht möglich. Und der Vergleich von Word-Dateien funktioniert OHNE eine installiertes Word auf dem Git-Client.
Für diese Möglichkeit muss die Applikation pandoc
auf dem PC installiert werden. Die Installationsdatei lässt sich von der offiziellen Projektseite herunterladen. Nach der Installation ist die Software bereits einsatzbereit, weitere Anpassungen sind nicht erforderlich.
Im nächsten Schritt muss Git noch mitgeteilt werden, dass es pandoc
für die "Aufbereitung" von Word-Dateien verwenden soll.
Dazu sind die beiden Dateien zu editieren:
- .gitconfig
- .gitattributes
.gitconfig
Die Datei befindet sich im Home-Verzeichnis eures Benutzers. Editieren könnt ihr die mit dem Texteditor eurer Wahl.
Fügt einfach die folgenden Zeilen am Ende der Datei hinzu:
[diff "pandoc"]
textconv=pandoc --to=markdown
binary=true
prompt = false
[alias]
wdiff = diff --word-diff=color --unified=1
.gitattributes
Die Datei könnt ihr einfach in den Root-Ordner eures Git-Repository anlegen, sollte es sie noch nicht geben.
Dort tragt ihr die Zeile ein:
*.docx diff=pandoc
Word-Dateien lassen sich anschließend mit dem Befehl vergleichen.
git wdiff Word.docx
Die Word-Datei sieht dabei wie folgt aus:
Änzeige der Änderungen in der Git Bash, auf der Konsole.
Anzeige der Änderungen in der Git GUI Git-Cola.
Anzeige der Änderungen in der Git GUI.
2. Möglichkeit - Gegenüberstellung der Dokumente in Word
Mit der zweiten Möglichkeit werden die Änderungen direkt in Word gegenübergestellt. Dabei wird auf die Vergleichen-Funktion direkt in Word zurückgegriffen. Die Funktion ist zu erreichen über: "Überprüfen --> Vergleichen"
Für die Verwendung dieser Vergleichsmöglichkeit wird das JavaScript diff-doc.js
aus dem Git GUI TortoiseGit verwendet. Hier habt ihr zwei Möglichkeiten:
- TortoiseGit auf eurem Client installieren
- diff-doc.js von gitlab.com laden
1. TortoiseGit installieren
TortoiseGit ist ein Git-Client, der sich wie TortoiseSVN, als Kontextmenü in den Windows Explorer einbettet. Von dort können dann alle Funktionen aufgerufen direkt aufgerufen werden.
Die Installationsdatei könnt ihr von der offiziellen Projektseite herunterladen und anschließend wie gewohnt installieren.
Durch die Installation der vollständigen Installation der TortoiseGit Applikation auf eurem Client wird automatisch des JavaScript mit installiert. Ihr findet das Script normalerweise im Verzeichnis C:\\Programme\\TortoiseGit\\Diff-Scripts
2. Nur diff-doc.js installieren
Für den Vergleich von Word-Dateien wird TortoiseGit nicht benötigt, sondern lediglich das JavaScript diff-doc.js. Deshalb ist es möglich nur das JavaScript herunterzuladen und für den diff zu verwenden.
Das Script findet ihr auf TortoiseGit-Projektseite auf gitlab.com. Dort hangelt ihr euch in das Verzeichnis "tortoisegit/contrib/diff-scripts" und ladet von dort nur die Datei diff-doc.js
herunter. Die Datei speichert ihr dann anschließend auf eurer Festplatte.
Egal welche der beiden Möglichkeiten ihr für die Installation des JavaScripts bevorzugt, die weitere Konfiguration ist die Gleiche. Bei der dieser Vorgehensweise ist nur die ".gitconfig" zu editieren.
gitconfig
Am Ende der Datei fügt ihr die folgenden Zeilen hinzu. Achtet darauf, dass ihr das richtige Verzeichnis der *diff-doc.js* eintragt.
[diff]
tool = wdiff
[difftool "wdiff"]
cmd="wscript.exe "c:\\Program Files\\TortoiseGit\\Diff-Scripts\\diff-doc.js" "$LOCAL" "`pwd`/$REMOTE""
Den Vergleich von in dem Git-Repository hinterlegtn Word-Dateien startet ihr mit dem Befehl
git difftool -t wdiff test.docx
Nachdem ihr die Meldung mit "Y" bestätigt hab, öffnet sich WOrd und stellt die Versionen gegenüber.
Microsoft Office beherrscht auch das reine XML-Format. Solche XML-Dateien sind Textdateien und könnten damit sofort mit Git diff genutzt werden, der Umweg über die unten beschrieben Möglichkeiten sind damit nicht mehr erforderlich.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️