Situation
Man hat ein geniales OSS Produkt installiert und 3, 4, 123 kleinste Änderungen eingefügt um es an die Situation anzupassen oder Fehler zu korrigieren (die man natürlich zurückgemeldet hat). Nun werden ein paar kleine aber hässliche Sicherheitslücken gefunden und eine neue Version publiziert. Die Motivation geht natürlich in den Keller mit der Aussicht alles wieder und wieder reproduzieren zu müssen.
Eine mögliche Lösung: Patches. Patches sind kleinere Codeflicken die sich überraschend intelligent in neuen Code einzufügen wissen.
Erstellen eines Patches mit CVS/SVN
Wenn man alles im SVN/CVS hat ist man fein raus. Neue Version einer Datei nicht einchecken und folgendes tun:
bzw.
Will man Änderungen in mehreren Dateien rekursiv verarbeiten, so geht das mit SVN/CVS so:
bzw.
Erstellen eines Patches ohne CVS/SVN
Ohne SVN und CVS muss man die Originaldatei zuerst wegkopieren und folgendes tun:
Bei ganzen Verzeichnissen muss man ebenfalls die unveränderte Version zuerst wegkopieren. Nach der Änderung in das Grundverzeichnis der Arbeitsversion wechseln und dann folgendes eingeben:
-N fügt auch neu erstellte Dateien hinzu.
In Praktisch bedeutet dies zum Beispiel:
Patchen der Quellen
Das ist einfach. Im richtigen Verzeichnis:
Hinweise
- Die Option -B beim Erzeugen des Patches ignoriert leere Zeilen
- -u8 fügt mehr Kontext hinzu: Für eher paranoid gestimmte Naturen…