Method and apparatus for upgrading a software application in the presence of user modifications
First Claim
1. A computer-implemented method of upgrading a software application by merging two modified versions of a common ancestor version, the method comprising:
- receiving indications of a first modified version of the common ancestor version and of a distinct second modified version of the common ancestor version; and
without user intervention, automatically creating a new version of the software application by merging the first and second modified versions, byautomatically collecting object definitions from an ancestor repository associated with the common ancestor version, from a first repository associated with the first modified version, and from a second repository associated with the second modified version;
identifying a first set of modified objects in the first modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions;
identifying a second set of modified objects in the second modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions;
determining which of the identified modified objects in the first set of modified objects are compatible with the second modified version; and
creating the new version of the software application by merging the compatible modified objects with the second modified version.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for upgrading (31-b of FIG. 1) a software application (35-b) from a prior version to a subsequent version while preserving user modifications to the prior application. The method includes comparing differences between the two versions of the software applications. This is followed by enumerating the differences between the two versions of the software applications; and determining which differences between the two versions of the software are conflicting and which are compatible. The compatible changes are made (7). Also disclosed is an article of manufacture containing computer readable program code for carrying out the above process, and a program storage device carrying the code.
-
Citations
21 Claims
-
1. A computer-implemented method of upgrading a software application by merging two modified versions of a common ancestor version, the method comprising:
-
receiving indications of a first modified version of the common ancestor version and of a distinct second modified version of the common ancestor version; and without user intervention, automatically creating a new version of the software application by merging the first and second modified versions, by automatically collecting object definitions from an ancestor repository associated with the common ancestor version, from a first repository associated with the first modified version, and from a second repository associated with the second modified version; identifying a first set of modified objects in the first modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; identifying a second set of modified objects in the second modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; determining which of the identified modified objects in the first set of modified objects are compatible with the second modified version; and creating the new version of the software application by merging the compatible modified objects with the second modified version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium whose contents cause a computing device to perform a method for upgrading at least portions of a modified version of a software application based at least in part on another distinct modified version of the software application, the method comprising:
-
automatically collecting object definitions from an ancestor repository associated with the common ancestor version, from a first repository associated with the first modified version, and from a second repository associated with the second modified version; identifying a first set modified objects in the first modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; identifying a second set of modified objects in the second modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; determining which of the identified modified objects in the first set of modified objects are compatible with the second modified version; and creating the new version of the software application by merging the compatible modified objects with the second modified version. - View Dependent Claims (18, 19)
-
-
20. An apparatus for upgrading a software application from a user-modified prior version to an upgrade version, the user-modified prior version and the upgrade version having a common ancestor version, the apparatus comprising:
-
a first component able to automatically collect object definitions from an ancestor repository associated with the common ancestor version, from a first repository associated with the first modified version, and from a second repository associated with the second modified version; a second component able to identify a first set modified objects in the first modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions and to identify a second set of modified objects in the second modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; a third component able to determine which of the identified modified objects in the first set of modified objects are compatible with the second modified version; and a fourth component able to create the new version of the software application by merging the compatible modified objects with the second modified version.
-
-
21. A computing device for upgrading a software application from a user-modified prior version to an upgrade version, wherein the user modified prior version and the upgrade version have a common ancestor version, said apparatus comprising:
-
means for automatically collecting object definitions from an ancestor repository associated with the common ancestor version, from a first repository associated with the first modified version, and from a second repository associated with the second modified version; means for identifying a first set modified objects in the first modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; means for identifying a second set of modified objects in the second modified version by comparing against attributes of corresponding objects in the common ancestor version based on the object definitions; means for determining which of the identified modified objects in the first set of modified objects are compatible with the second modified version; and means for creating the new version of the software application by merging the compatible modified objects with the second modified version.
-
Specification