Anwendungsbeispiele                             Binary Diff/Binary Patch

Fall 1: Erzeugen eines Korrekturarchivs wegen eines Fehlers

Wer kennt das nicht?  Kaum hat man eine neue Version in Umlauf gebracht,
schon findet man einen dummen Fehler. Nun kann man  entweder  ein  neues
Archiv  zusammenstellen  und  herausgeben (was bei kleinen Archiven noch
ertrglich ist), aber bei Archiven mit mehr als 100 KByte ist  es  schon
rgerlich fr viele Anwender, wenn sie schon wieder ein so groes Archiv
per DF saugen mssen.

Was kann  man  also  dagegen machen?  Antwort: man erzeugt lediglich ein
Diff-Archiv  fr  das  fehlerhafte  Programm,   indem   man   die   alte
(fehlerhafte) Version mit der korrigierten Version vergleichen lt, und
bringt  das  so  entstandene Archiv zustzlich in Umlauf. So erspart man
den Anwendern einen Groteil der Telefonkosten und erreicht dennoch  das
gleiche Ziel wie mit der herkmmlichen Methode.

Um  dies  zu  realisieren,  mu  man  mit  Binary  Diff die alte und die
korrigierte Version vergleichen, aber  gleichzeitig  dafr  sorgen,  da
beim Anwender  nur  eine  einzige  (neue)  Version  brig  bleibt.   Ein
einfacher  Dateivergleich  reicht  somit  nicht  aus,  denn  dort   wird
erwartet, da  beide  Dateien unterschiedliche Namen besitzen.  Aber man
kann sich ber einen kleinen Trick behelfen:

Zuerst legt man einen Ordner "neu" in dem Verzeichnis an,  in  dem  sich
die  fehlerhafte  Version  befindet,  und  kopiert  dort die korrigierte
Fassung unter dem gleichen Namen hinein.  Anschlieend ruft  man  Binary
Diff mit der folgenden Kommandozeile auf:

          bindiff --add --no-paths bugfix foo.prg neu\foo.prg

Mit   der   Angabe   von  "--no-paths"  wird  der  Pfad  "neu\"  einfach
weggelassen, und schon hat man als Referenz den gleichen Namen  wie  bei
der zu erzeugenden Datei, nmlich nur "foo.prg".

Wenn  die  korrigierte  Version  aber unter einem anderen Namen angelegt
werden soll, so geht dies natrlich viel einfacher:

          bindiff --add bugfix foo1.prg foo2.prg

Damit wird also spter beim Anwender die Datei "foo2.prg" angelegt,  und
die Referenzdatei "foo1.prg" existiert auch weiterhin.


Fall 2: Erzeugen eines Diff-Archives wegen einer neuen Version

Um  ein  Update-Diff-Archiv  fr  mehr  als nur eine Datei auf einmal zu
erzeugen, wre es zwar  mglich,  Binary  Diff  mehrmals  hintereinander
aufzurufen, aber  dies ist gar nicht notwendig.  Man braucht nmlich nur
anstatt der Dateinamen den Namen zweier Verzeichnisse angeben, wobei  es
keine  Rolle  spielt,  ob  diese Namen mit einem "\" oder "/" enden oder
nicht, da Binary Diff hier automatisch den Typ (Datei oder  Verzeichnis)
erkennt.

Um nun also die Dateien in dem Verzeichnis "alt" mit dem aktuellen Stand
der  Dateien  von  "neu" zu vergleichen, kann man folgende Kommandozeile
eingeben:

          bindiff --add update alt neu

Beachten sollte man noch, da in dem Diff-Archiv keiner der Pfade  "alt"
bzw.   "neu" abgespeichert wird, da die Verzeichnisnamen fr Binary Diff
nur Hinweise darstellen, wo die  zu  vergleichenden  Dateien  zu  finden
sind.
