Es gibt zahlreiche Gründe, warum man hin und wieder am TYPO3-Core herumschrauben muss.
Meist sind es Kleinigkeiten, die den Kunden stören und die nur so zu beseitigen sind. Allerdings läuft man immer die Gefahr, seine Änderungen zu verlieren, wenn man neue Sourcen einspielt. Da wäre es also sinnvoll und praktisch Aufzeichnung über seine Änderungen zu haben – am besten in einer Form, mit der sich diese sofort wieder in die aktualisierten Sourcen einspielen lassen.
Aber auch für einen anderen Zweck ist das ganze gut: Wenn man beispielsweise einen Fehler im TYPO3-System findet und diesen behebt, kann man seine Veränderung als patch-File im Bugtracker hinterlegen.
Um einen Patch zu erstellen gehen wir wie folgt vor (die Anleitung ist für Linux-Systeme):
- Wir speichern die zu ändernde Datei mit einem neuen Namen im selben Verzeichnis ab, in meinem Fall war dies die Datei class.t3lib_page.php im Verzeichnis typo3_src-4.1.4/t3lib/ Die Kopie der Datei habe ich beispielsweise class.t3lib_page_orig.php genannt.
- Nun wird die usprüngliche Datei geändert (Fehler behoben, Feauture zugefügt, …)
- Wenn wir mit der Änderung fertig sind, wechseln wir ins Rootverzeichnis der TYPO3-Installation.
- Dort setzen wir folgenden Befehl ab (alles in eine Zeile schreiben!) – die Pfade und Dateinamen müssen natürlich angepasst werden:
diff -ruN typo3_src-4.1.4/t3lib/class.t3lib_page.php typo3_src-4.1.4/t3lib/class.t3lib_page_orig.php > patch_20071214_1.diff
- Das nun erstellte Patch-File heben wir an geeigneter Stelle auf.
- Wir können nun die Kopie der Datei wieder löschen.
- Wenn wir später die Änderung wieder einspielen wollen, wechseln wir wieder ins Rootverzeichnis der TYPO3-Installation und geben den folgenden Befehl ein:
patch -p1 < patch_20071214_1.diff
- Gegebenenfalls muss dann das File angegeben werden, welches den Patch abbekommen soll – wenn sich die Pfade nicht verändert haben, ist dies allerdings nicht notwendig.
- Um den Patch nicht direkt einzuspielen, sondern einen sogenannten Trockenlauf zu machen, um zu sehen, was sich ändern würde, kann man den Parameter –dry-run verwenden.
Der Vorteil dabei ist, dass man sich die Patch-Files auch so manuell durchsehen kann, um schnell herauszubekommen, was für Änderung man im Laufe der Zeit durchgeführt hat. Wenn man wie oben das Datum in den Filenamen schreibt, hat man auch eine visuelle Kontrolle über den Zeitpunkt der Änderungen.


