1. A method of updating computer software, comprising: identifying an orphaned computer file in a second version of computer software, the orphaned computer file having a name that does not correspond to any name of a computer file in a first version of computer software; computing symmetric divergence between the orphaned computer file and each computer file in the first version of computer software; choosing a file from the computer files in the first version of computer software that yields a minimum value of symmetric divergence between the file and the orphaned computer file; using the file as a reference file for compressing the orphaned computer file; and compressing the orphaned file without referencing a particular file from the first version of computer software when the files being analyzed are smaller than a predetermined minimum size, resulting in a low symmetric divergence even though the files have few symbol pairs in common with each other.