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.
Más bien que comparando un viejo archivo con un archivo nuevo para generar un sistema de instrucciones que remiendan, y después comprimiendo las instrucciones que remiendan de generar un archivo compacto del remiendo para la transmisión a un usuario, un archivo del remiendo se genera en una sola operación. Un compresor es preinicializado de acuerdo con la vieja versión del archivo (e.g. en un compresor LZ77, la ventana de la historia se carga con el archivo). El compresor preinicializado entonces comprime el viejo archivo, produciendo un archivo del remiendo de el cual el archivo nuevo pueda ser generado. En la computadora del usuario, un proceso paralelo se realiza, con la copia del usuario del viejo archivo que es utilizado pre-inicializar un descompresor a el cual el archivo del remiendo entonces se entre. La salida del descompresor es el archivo nuevo. El remiendo archiva generado y utilizado en estos procesos esté de tamaño perceptiblemente reducido cuando está comparado al arte anterior. Las variaciones entre las copias del viejo archivo según lo instalado en diversas computadoras también se tratan, de modo que un solo archivo del remiendo pueda ser independiente aplicado de tales variaciones. Tan haciendo, la necesidad de un archivo del remiendo de la multi-versio'n de manejar tales diferencias de la instalación es eliminada, más futuro reduciendo el tamaño del archivo del remiendo en comparación con técnicas del arte anterior. Tales variaciones son tratadas "normalizando" el viejo archivo antes del uso del archivo del remiendo. Una copia temporal del viejo archivo se hace típicamente, y las localizaciones dentro del archivo en el cual los datos pueden ser imprevisible debido a las idiosincrasias de la instalación del archivo se cambian a los valores sabidos o fiables.