Nimmt man an einer Datei kleine Änderungen vor und möchte diese verbreiten, so reicht es normalerweise (im Fall von Textdateien), nur die Änderungen (diff) zu verteilen. Diese werden dann auf die Originaldateien angewendet (patch). Klassisch läuft das mit den gleichnamigen Unix-Werkzeugen diff und patch.
Handelt es sich um Binärdateien (im Beispiel die ausführbare Datei eines Computerspiels), versagen die beiden jedoch leider Ihren Dienst. Gesucht ist also ein Werkzeug, das
Das Paket rdiff gibt es sowohl für Linux als auch für Windows (mittels cygwin, genaueres siehe unten). Es ist in der Lage, Unterschiede von zwei binären Dateien platzsparend zu speichern.
Zunächst wird von der Ursprungsdatei eine sogenannte Signatur gebildet:
rdiff signature original original.sig
Dann wird die Differenz zwischen der neuen Datei und der Signatur ermittelt:
rdiff delta neu original.sig original_neu.rdiff
Um schließlich das Patch auf die Originaldatei anzuwenden, lautet der Aufruf:
rdiff patch original original_neu.rdiff
Somit benötigt man zum Patchen nur die Delta-Datei, was die Anforderung erfüllt.
Damit nicht gleich cygwin komplett installiert werden muß, kann man einzelne Komponenten nutzbar machen, indem man die benötigten exe- und dll-Dateien extrahiert. Für rdiff werden folgende Dateien benötigt: