- Patch (Unix)
-
Das Unix-Programm
patch
manipuliert Quelltext anhand eines Patches. Es ist somit das Gegenstück zu dem Programmdiff
, das Patches erzeugt.Inhaltsverzeichnis
Hintergrund
Die erste Implementierung wurde von Larry Wall geschrieben und lief auf Unix-artigen Betriebssystemen. Inzwischen wurde es auf zahlreiche Plattformen portiert und ist Teil des POSIX-Standards und der meisten IDEs. Das Programm kann viele verschiedene Formate von Patches anwenden und ist zu einem populären Weg geworden, unter Entwicklern Änderungen an einem Programm untereinander auszutauschen.
patch
wurde besonders populär innerhalb der Freie-Software-Gemeinschaft, weil es Entwicklern erlaubt, zu einem Projekt schnell und einfach beizutragen, ohne Schreibzugriff zur Versionsverwaltung des Projektes zu haben.Anwendung
Um einen Patch anzuwenden, genügt dieser Befehl:
$ patch -p1 < name_des_Patch.diff
Dieser Befehl bringt
patch
dazu, die Änderungen der Dateien, die in dem Patch angegeben sind, anzuwenden und die erste Directory-Komponente des Pfades zu den Dateien zu überspringen. Patches werden oft so erstellt, dass das Hauptverzeichnis des Quellcode-Baumes in dem Patch enthalten ist, sollen die Dateien aber von innerhalb des Hauptverzeichnisses gepatcht werden, muss patch der Parameter-p1
übergeben werden.Mit dem Parameter
-R
kann man Änderungen eines einmal angewendeten Patches zurücknehmen.Interoperabilität mit Windows
Bei Verwendung von Patches, die auf einer Windows-Machine erzeugt wurden, ist es bisweilen notwendig das CR/LF-Problem zu behandeln, damit der Patch anwendbar wird. Dies geschieht beispielsweise durch
$ sed -e '/^Index:/ {N;N;N;s/\r//g}' name_des_unter_Windows_erzeugten_Patch.diff > name_des_Patch.unix.diff $ patch -p1 < name_des_Patch.unix.diff
Weblinks
Kategorie:- Unix-Software
Wikimedia Foundation.