A system and method for improved software servicing by installation of an
updated version is provided. Using branch versioning techniques that
support multi-branch development and release versioning techniques that
support multi-version development, an update package may include updated
files for each branch or release version. The least possible version from
the update package may be installed to minimize the risk for potential
software bugs introduced by the high frequency of changes made to a
higher version. Additionally, any fix installed on a target machine
running a particular version may be migrated when updating the target
machine to a new version without losing the fix and regressing the
change. Such an update may be uninstalled by reverse migration of any
fixes before uninstalling files from the version update.