Hallo,

ich hab gerade folgende Aufgabenstellung:

Es liegen zwei verschiedene tgz-Dateien von relativ großem Umfang vor (30MB). Beide Dateien enthalten das Root-Filesystem eines embedded Targets, nur in verschiedenen Versionsständen. Enthalten sind also verschiedenste Dateitypen (links, ggf. hardlinks, files(text und binary), directories, nods).

Ich würde nun gern ein patch zur Verfügung stellen, dass es ermöglicht ein entpacktes Rootfilesystem auf einem Target auf den Stand des neuen TGZ zu bringen. Dazu müssten neue Dateien kopiert, veränderte Dateien überschrieben und überflüssige Dateien gelöscht werden. Da der Flashspeicher auf dem Target begrenzt ist, brauche ich ein neues tgz-File, dass nur die notwendigen Dateien für den patch enthält plus Skripte etc.

Das Patch wollte ich mit mkself erzeugen. Mit meinem bisherigen Wissensstand würde ich versuchen das Problem mit diff und einer eigenen Software zu Lösen. Dazu würde ich die beiden tgz temporär entpacken, mit diff eine Liste der Unterschiede erzeugen und dann eine Software schreiben, welche für jeden gefunden Unterschied eine Lösung erzeugt. Als Resultat käme ein Verzeichnis heraus das alle Neueren Dateien enthält plus eine Datei die alle Regeln für das Update enthält. Zusammen mit einem Skript packe ich das Ganze mit mkself zu einem selbstausführenden Patch.

Da ich wahrscheinlich viel zu kompliziert denke und es dafür vielleicht eine tolle Lösung bereits gibt wollte ich gern nachfragen. Kennt von Euch jemand vielleicht eine vorhandene Lösung und oder hat eine zündende Idee zu dem Thema, die mir die Arbeit erleichtert?

Danke und Gruß,
Gavin Schenk
-- 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an