Rather than comparing an old file with a new file to generate a set of
patching instructions, and then compressing the patching instructions to
generate a compact patch file for transmission to a user, a patch file is
generated in a single operation. A compressor is pre-initialized in
accordance with the old version of the file (e.g. in an LZ77 compressor,
the history window is pre-loaded with the file). The pre-initialized
compressor then compresses the old file, producing a patch file from which
the new file can be generated. At the user's computer, a parallel process
is performed, with the user's copy of the old file being used to
pre-initialize a decompressor to which the patch file is then input. The
output of the decompressor is the new file. The patch files generated and
used in these processes are of significantly reduced size when compared to
the prior art. Variations between copies of the old file as installed on
different computers are also addressed, so that a single patch file can be
applied irrespective of such variations. By so doing, the need for a
multi-version patch file to handle such installation differences is
eliminated, further reducing the size of the patch file when compared with
prior art techniques. Such variations are addressed by "normalizing" the
old file prior to application of the patch file. A temporary copy of the
old file is typically made, and locations within the file at which the
data may be unpredictable due to idiosyncrasies of the file's installation
are changed to known or predictable values.
Παρά τη σύγκριση ενός παλαιού αρχείου με ένα νέο αρχείο για να παραγάγει ένα σύνολο επιδιόρθωσης των οδηγιών, και έπειτα συμπίεσης των οδηγιών επιδιόρθωσης για να παραγάγει ένα συμπαγές αρχείο μπαλωμάτων για τη μετάδοση σε έναν χρήστη, ένα αρχείο μπαλωμάτων παράγεται σε μια ενιαία λειτουργία. Ένας συμπιεστής προ-μονογράφεται σύμφωνα με την παλαιά έκδοση του αρχείου (π.χ. σε έναν LZ77 συμπιεστή, το παράθυρο ιστορίας φορτώνεται εκ των προτέρων με το αρχείο). Ο προ-μονογραμμένος συμπιεστής συμπιέζει έπειτα το παλαιό αρχείο, παράγοντας ένα αρχείο μπαλωμάτων από το οποίο το νέο αρχείο μπορεί να παραχθεί. Στον υπολογιστή του χρήστη, μια παράλληλη διαδικασία εκτελείται, με το αντίγραφο του χρήστη του χρησιμοποίησης του παλαιού αρχείου για να προ-μονογράψει έναν αποσυμπιεστή στον οποίο το αρχείο μπαλωμάτων εισάγεται έπειτα. Η παραγωγή του αποσυμπιεστή είναι το νέο αρχείο. Τα αρχεία μπαλωμάτων που παράγονται και που χρησιμοποιούνται σε αυτές τις διαδικασίες είναι σημαντικά μειωμένου μεγέθους όταν συγκρίνεται με τις προγενέστερες παραλλαγές αρθ. μεταξύ των αντιγράφων του παλαιού αρχείου όπως εγκαθίστανται στους διαφορετικούς υπολογιστές εξετάζονται επίσης, έτσι ώστε ένα ενιαίο αρχείο μπαλωμάτων μπορεί να εφαρμοστεί ανεξάρτητα από τέτοιες παραλλαγές. Με έτσι να κάνει, η ανάγκη για ένα αρχείο μπαλωμάτων πολυ-έκδοσης για να χειριστεί τέτοιες διαφορές εγκαταστάσεων εξαλείφεται, μειώνοντας περαιτέρω το μέγεθος του αρχείου μπαλωμάτων σε σύγκριση με τις τεχνικές προγενέστερης τέχνης. Τέτοιες παραλλαγές εξετάζονται με "την ομαλοποίηση" του παλαιού αρχείου πριν από την εφαρμογή του αρχείου μπαλωμάτων. Ένα προσωρινό αντίγραφο του παλαιού αρχείου γίνεται χαρακτηριστικά, και οι θέσεις μέσα στο αρχείο στο οποίο τα στοιχεία μπορούν να οφείλονται απρόβλεπτος στην ιδιοσυγκρασία της εγκατάστασης του αρχείου είναι αλλαγμένες γνωστές ή προβλέψιμες τιμές.