1
-
2
1
Git für Binärdateien
3
2
====================
4
3
@@ -25,16 +24,16 @@ Excel-Dateien verwenden:
25
24
:language: python
26
25
:lines: 5-
27
26
28
- Nun fügt ihr noch in der globalen Git-Konfiguration in der Datei :file: ` ~/.gitconfig `
29
- den folgenden Abschnitt hinzu:
27
+ Nun fügt ihr noch in der globalen Git-Konfiguration in der Datei
28
+ :file: ` ~/.config/git/config ` den folgenden Abschnitt hinzu:
30
29
31
30
.. code-block :: ini
32
31
33
32
[diff " excel" ]
34
33
textconv =python3 /PATH/TO/exceltocsv.py
35
34
binary =true
36
35
37
- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
36
+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
38
37
``excel ``-Konverter mit :file: `*.xlsx `-Dateien verknüpft:
39
38
40
39
.. code-block :: ini
@@ -58,15 +57,15 @@ Hierfür wird zusätzlich ``pdftohtml`` benötigt. Ihr installiert es mit
58
57
59
58
$ brew install pdftohtml
60
59
61
- Anschließend fügt ihr den folgenden Abschnitt der globalen Git-Konfiguration in der
62
- Datei :file: `~/.gitconfig ` hinzu:
60
+ Anschließend fügt ihr den folgenden Abschnitt der globalen Git-Konfiguration in
61
+ der Datei :file: `~/.config/git/config ` hinzu:
63
62
64
63
.. code-block :: ini
65
64
66
65
[diff " pdf" ]
67
66
textconv =pdftohtml -stdout
68
67
69
- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
68
+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
70
69
``pdf ``-Konverter mit :file: `*.pdf `-Dateien verknüpft:
71
70
72
71
.. code-block :: ini
@@ -76,10 +75,10 @@ Schließlich wird in der globalen :file:`~/.gitattributes`-Datei unser
76
75
Nun wird beim Aufruf von ``git diff `` die PDF-Datei zunächst konvertiert und
77
76
dann ein Diff über den Ausgaben des Konverters durchgeführt.
78
77
79
- … für Word- Dokumente
80
- --------------------
78
+ … für Dokumente
79
+ ---------------
81
80
82
- Auch Unterschiede in Word- Dokumenten lassen sich anzeigen. Hierfür kann `Pandoc
81
+ Auch Unterschiede in Dokumenten lassen sich anzeigen. Hierfür kann `Pandoc
83
82
<https://pandoc.org/> `_ verwendet werden, das einfach installiert werden kann
84
83
mit
85
84
100
99
Herunterladen und Installieren der aktuellen :file: `.msi `-Datei von `GitHub
101
100
<https://github.com/jgm/pandoc/releases/> `_.
102
101
103
- Anschließend wird der globalen Git-Konfiguration :file: `~/.gitconfig ` folgender
104
- Abschnitt hinzugefügt:
102
+ Anschließend wird der globalen Git-Konfiguration :file: `~/.config/git/config `
103
+ folgender Abschnitt hinzugefügt:
105
104
106
105
.. code-block :: ini
107
106
108
- [diff " word" ]
109
- textconv =pandoc --to =markdown
110
- binary =true
111
- prompt =false
107
+ [diff " pandoc-to-markdown" ]
108
+ textconv = pandoc --to markdown
109
+ cachetextconv = true
112
110
113
- Schließlich wird in der globalen :file: `~/.gitattributes `-Datei unser
114
- ``word ``-Konverter mit :file: `*.docx `-Dateien verknüpft:
111
+ Schließlich wird in der globalen :file: `~/.config/git/attributes `-Datei unser
112
+ ``pandoc-to-markdown ``-Konverter mit :file: `*.docx `, :file: `*.odt ` und
113
+ :file: `*.rtf `-Dateien verknüpft:
115
114
116
115
.. code-block :: ini
117
116
118
- *.docx diff =word
117
+ *.docx diff =pandoc-to-markdown
118
+ *.odt diff =pandoc-to-markdown
119
+ *.rtf diff =pandoc-to-markdown
120
+
121
+ .. tip ::
122
+ :doc: `Jupyter Notebooks <jupyter-tutorial:notebook/index >` schreiben in eine
123
+ JSON-Datei :ref: `*.ipynb <jupyter-tutorial:was-ist-eine-ipynb-datei >`, die
124
+ ziemlich dicht und insbesondere bei Diffs schwer zu lesen ist. Die
125
+ Markdown-Darstellung von Pandoc vereinfact dies:
126
+
127
+ .. code-block :: ini
128
+
129
+ *.ipynb diff =pandoc-to-markdown
119
130
120
131
Die gleiche Vorgehensweise kann auch angewandt werden, um nützliche Diffs von
121
132
anderen Binärdateien zu erhalten, :abbr: `z.B. ( zum Beispiel ) ` ``*.zip ``,
@@ -124,3 +135,61 @@ Metainformationen von Bildern mit ``exiv2``. Zudem gibt es
124
135
Konvertierungswerkzeuge für die Umwandlung von :file: `*.odt `, :file: `*.doc ` und
125
136
anderen Dokumentenformaten in einfachen Text. Für Binärdateien, für die es
126
137
keinen Konverter gibt, reichen oft auch Strings aus.
138
+
139
+ .. _exiftool :
140
+
141
+ … für Medien-Dateien
142
+ --------------------
143
+
144
+ `ExifTool <https://exiftool.org >`_ kann verwendet werden um die Metadaten der
145
+ Medien-Dateien in Text zu konvertieren.
146
+
147
+ .. tab :: Debian/Ubuntu
148
+
149
+ .. code-block :: console
150
+
151
+ $ sudo apt install libimage-exiftool-perl
152
+
153
+ .. tab :: macOS
154
+
155
+ .. code-block :: console
156
+
157
+ $ brew install exiftool
158
+
159
+ .. tab :: Windows
160
+
161
+ .. code-block :: ps1
162
+
163
+ > choco install exiftool
164
+
165
+ .. seealso ::
166
+ * `Installing ExifTool <https://exiftool.org/install.html >`_
167
+
168
+ Anschließend könnt ihr in der globalen Git-Konfigurationsdatei
169
+ :file: `~/.config/git/config ` folgenden Abschnitt hinzufügen:
170
+
171
+ .. code-block :: ini
172
+
173
+ [diff " exiftool" ]
174
+ textconv = exiftool --composite -x ' Exiftool:*'
175
+ cachetextconv = true
176
+ xfuncname =
177
+ " ^-.*$"
178
+
179
+ Schließlich wird in der :file: `~/.config/git/attributes ` der
180
+ ``exiftool ``-Konverter mit Datei-Endungen von Medien-Dateien verknüpft:
181
+
182
+ .. code-block :: ini
183
+
184
+ *.avif diff =exiftool
185
+ *.bmp diff =exiftool
186
+ *.gif diff =exiftool
187
+ *.jpeg diff =exiftool
188
+ *.jpg diff =exiftool
189
+ *.png diff =exiftool
190
+ *.webp diff =exiftool
191
+
192
+ .. seealso ::
193
+ ``exiftool `` kann noch viele weitere Medien-Dateien verarbeiten. Eine
194
+ vollständige Liste erhaltet ihr in `Supported File Types
195
+ <https://exiftool.org/#supported> `_.
0 commit comments