diff
und patch
sind sehr nützliche Tools, wenn auf die Verwendung von Versions-Kontroll Systemen (wie z.B. git
) verzichtet wird, oder die Entwickler keine zueinander kompatible Systeme einsetzen.
Diese kurze Beschreibung zeigt, wie patches generiert und dann angewandt werden. Natürlich ist dies keine vollständige Beschreibung der Tools und deren Möglichkeiten, soll aber einen kurzen Einblick in die Verwendung geben.
Nehmen wir an, es existiere ein Verzeichnisbaum:
v-1.0
+ hello.c
+ world.c
+ Makefile
Dieses Verzeichnis wird kopiert und Änderungen werden vorgenommen (fett gekennzeichnet):
v-1.1
+ hello.c
+ world.c
+ Makefile
+ foobar.c
Um nun einen Patch von Version 1.0 auf 1.1 zu erstellen begibt man sich in das übergeordnete Verzeichnis
directory
+ v-1.0
+ v-1.1
und erstellt mit Hilfe von diff einen Patch:
Wir haben nun ein File, das die Differenz von beiden Verzeichnisbäumen enthält
directory
+ v-1.0
+ v-1.1
+ patch-1.1
Hat nun ein Entwickler nur die Version 1.0, so kann er diese mit Hilfe des Patches patch-1.1
auf die Version 1.1 updaten.
Er hat folgendes Verzeichnis (Patch bereits kopiert):
directory
+ v-1.0
+ patch-1.1
Nun muss er zwei Schritte unternehmen um ein update machen zu können:
Hier sind die zwei Schritte gezeigt:
Schon hat auch er auch die neueste Version des Sourcecodes:
directory
+ v-1.1
+ patch-1.1