Archiv verlassen und diese Seite im Standarddesign anzeigen : Updaten einer Datei
Hi,
erstmal hallo ans Forum. bin neu hier, und mach wohl auch schon den ersten fehler.
ich bin seit längerem in der Programmierung und stehe nun vor einem Wissensproblem. Für welches es fertige lösungen gibt, und die auch funktionieren, aber ich würde gern wissen wie es genau funktioniert. und rein technisch abläuft.
okay nun zur frage:
wie funktioniert ein Update? also wie ist die funktionsweise hinter einem upate,
ist es so einfach wie, ich nehm die alte (kompilierte) datei, vergleiche sie mit der neuen und kopiere die teile die sich unterscheiden in die alte?
würde das auch händisch funktionieren?
auf was muss man achten?
gruss seba
Jan Krüger
20.05.2005, 16:46
Ein Update wovon? Man kann viele Sachen "updaten".
Falls du Softwareupdates meinst und wie die platzsparend realisiert werden: meistens wird einfach ein Paket erstellt, das alle geänderten Dateien beinhaltet, und die werden dann einfach überschrieben. Aber es gibt auch verbesserte Verfahren, etwa xdelta (oder auch rsync, wenn über das Netzwerk synchronisiert werden soll). Den jeweiligen genauen Algorithmus, der verwendet wird, um die Änderungen zu berechnen und dann anzuwenden, kann ich dir nicht sagen, weil ich mich damit noch nicht beschäftigt habe, aber Google weiß sicher Rat. Um noch Suchstichwörter zu liefern: rsync verwendet "Rolling Checksums".
butterkeks
20.05.2005, 18:24
neben dem Überschreiben gibt es noch die Möglichkeit, mit Patches zu arbeiten.
Probleme könnte es geben, wenn man von Version x nach z kommen will, aber nicht den entspr. Patch verwendet, sondern den von Version y nach Version z (bei source code patches funktioniert das eher als bei binären).
Ein Workaround wäre, herauszufinden, welche Patches man in welcher Reihenfolge anwenden muss und es dann zu tun, aber bei großen Intervallen könnte man im Endeffekt sogar mehr Daten benötigen anstatt zu sparen.
Wenn die Updates in festen Frequenzen oder nicht allzu lückenhaft durchgeführt werden, dann lohnt sich das mit den Patches jedoch eher, würde ich sagen.
ich schilder mal ein etwas konkreteres beispiel:
programm welches z.b. 30mb gross ist, z.b. in delphi, darin hab ich eine zeile code vergessen. nun ist es aber doof für den normaluser 30mb runterzuladen obwohl nur 10kb mehr drin stehen z.b. da müsste mit der möglichkeit, ich schaue die unterschiede der compilierten dateien an, und erstetze diese in der alten version, einfach schneller und platzsparender gehen.
also im prinzip die patchversion von butterkeks.
klar geht das nur wenn der patch auf die passende vorgängerversion angepasst wird.
es gibt solche programme ja auch, hab ich auch eins für delphi gefunden mit dem das recht easy geht. jedoch was bringt es einem ein programm zu haben ohne zu wissen wie es genau funktioniert.
gibts irgendwo dokus über patch mechanismen bzw. sowas um es "mit der hand" auszuprobieren? dumm gesagt, wenn ich weiss wie ich mit den händen ein loch buddel kann ich auch den passenden bagger bauen.
Jan Krüger
20.05.2005, 19:24
Wenn du's ganz genau wissen willst:
http://www.rfc-editor.org/rfc/rfc3284.txt (beschreibt ein standardisiertes Dateiformat für solche Patches und ein paar allgemeine Vorgehensweisen)
Die Details, die das ganze wirklich effizient machen, fehlen da natürlich. Wenn du mich fragst, bringt es aber sowieso nichts, das komplett selbst zu implementieren (der Autor von xdelta arbeitet da schon seit Jahren dran -- das ist nicht mal eben zwischendurch reproduzierbar); organisier dir die xdelta-Lib und mach sowas einfach damit.
wie gesagt, es ging mehr darum, verstehen wie es geht. ich werde eher die delphi source zu nutze von MakeUpd benutzen. Die ist schon voll funktionsfähig, und funktioniert auch, nur ein paar kleinigkeiten müsste man eben individualisieren.
thanks erstmal. werd mir den rfc link mal zu gemüte führen in einer ruhigen stunde :)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.