1. A computer-implemented method for updating an application that contains metadata, comprising the steps of: labeling the metadata in the application with a first version identifier; making a copy of the application; wherein the copy of the application contains metadata; wherein the metadata in the copy of the application is the same as the metadata labeled with the first version identifier at the time the copy of the application is made; installing an update to the copy of the application; wherein installing the update includes modifying the metadata in the copy of the application; at a time subsequent to labeling the metadata in the application with the first version identifier, labeling the metadata in the application with a second version identifier; determining a difference between the metadata labeled with the second version identifier and the metadata labeled with the first version identifier; updating the metadata in the copy of the application to incorporate the difference; making the metadata in the application read-only; labeling the metadata in the application with a new version identifier; determining a difference between the metadata labeled with the new version identifier and metadata previously labeled with a previous version identifier; updating the metadata in the copy of the application to incorporate the difference.