Dynamic versioning system for multiple users of multi-module software systems
First Claim
1. A method for automatically managing versions of software within a complex system that initially is comprised of a first master version including a plurality of modules, the method comprising:
- providing a plurality of users with access to the plurality of modules of the first master version;
permitting a user to access and modify a private copy of a module of the first master version, without affecting other private copies of the module in use by the plurality of users;
creating a second master version, whenever the user modifies and saves the private copy of the module to create a new version, including the new version of the module and any of the plurality of modules associated with the first master version that have not been saved; and
restricting access to the second master version to the user that created the new version of the module and new users, while providing all other users with access to the first master version.
1 Assignment
0 Petitions
Accused Products
Abstract
A dynamic versioning system for synchronizing different versions of modules among different versions of a complex multi-module software system, and maintaining a consistent view of a version of the complex system for each user having access to the system. The dynamic versioning system grants a user read-only access to the multiple modules in a complex system, and promotes the access to write access only when a user is ready to save a modified module in the permanent non-volatile memory of the complex system. The dynamic versioning system manages the evolving versions of the complex system with a Dynamic Versioning Table (DVT) and master modules that identify the multiple slave modules associated with a particular version of the complex system. Old versions of modules are removed from the complex system'"'"'s permanent non-volatile memory when the last user has terminated use of the complex system.
65 Citations
26 Claims
-
1. A method for automatically managing versions of software within a complex system that initially is comprised of a first master version including a plurality of modules, the method comprising:
-
providing a plurality of users with access to the plurality of modules of the first master version;
permitting a user to access and modify a private copy of a module of the first master version, without affecting other private copies of the module in use by the plurality of users;
creating a second master version, whenever the user modifies and saves the private copy of the module to create a new version, including the new version of the module and any of the plurality of modules associated with the first master version that have not been saved; and
restricting access to the second master version to the user that created the new version of the module and new users, while providing all other users with access to the first master version. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
providing the user with read-only access to the module;
receiving a request to modify the module from the user;
transferring the module to a memory space for the user;
permitting the user to modify the module in the memory space for the user;
receiving the modified module from the user;
creating a new master version in response to receiving the modified module, wherein the new master version is the second master version; and
storing information associating the modified module and any unmodified modules with the second master version.
-
-
3. The method of claim 2 wherein the user shares read-only access with the plurality of users of the module until receiving the module into the memory space for the user.
-
4. The method of claim 3 further comprising maintaining a table that associates the modified and unmodified modules with a respective master version.
-
5. The method of claim 1 wherein providing access to the module in the first master version to the user further comprises providing access to a master version currently being accessed by the user.
-
6. The method of claim 1 wherein providing access to the modified module in the second master version to the user further comprises providing access to a master version that is the most current.
-
7. The method of claim 1 further comprising merging the modified module with a master version that is the most current if the second master version is not the master version that is the most current.
-
8. The method of claim 1 further comprising updating the complex system'"'"'s software, after access to the software is ended, and storing a master version that is the most current and includes a version of all of the modules that is the most current.
-
9. The method of claim 1 further comprising assigning a unique increment version number to each of the plurality of modules that is modified and saved, and generating a new master revision, after each of the plurality of modules has been modified and saved.
-
10. The method of claim 1 further comprising assigning an increment version number that is the same to each of the plurality of modules that is modified and saved, and generating a new master revision that includes each of the plurality of modules that have been modified and saved.
-
11. The method of claim 1 further comprising conducting a comparison between a master version that the user is attempting to save and a second master version that is stored by the complex system, and determining whether the master version can be save as a new master version or whether the master version should be merged with other existing master versions and saved as the new master version.
-
12. The method of claim 11 further comprising determining if a conflict exist between the master version and the second master version, and warning the user to save conflicting modules under different names or instructing the user to execute conflicting saves to reconcile the conflicts.
-
13. The method of claim 1 further comprising making a temporary copy of a master version that is stored by the complex system and implementing any modifications by deleting, adding, or renaming the module in the temporary copy of the master version, and storing an updated version of the temporary copy of the master version as the master version stored by the complex system.
-
14. A computer-readable medium having computer-executable instructions for managing software initially comprised of a first master version including a plurality of modules by performing the steps comprising:
-
providing a plurality of users with access to the plurality of modules of the first master version;
permitting a user to access and modify a private copy of a module of the first master version, without affecting other private copies of the module in use by the plurality of users;
creating a second master version, whenever the user modifies and saves the private copy of the module to create a new version, including the new version of the module and any of the plurality of modules associated with the first master version that have not been saved; and
restricting access to the second master version to the user that created the new version of the module and new users, while providing all other users of the plurality of users with access to the first master version. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
providing the user with read-only access to the module;
receiving a request to modify the module from the user;
transferring the module to a memory space for the user;
permitting the user to modify the module in the memory space for the user;
receiving the modified module from the user;
creating a new master version in response to receiving the modified module, wherein the new master version is the second master version; and
storing information associating the second master version with the modified module and any unmodified modules in the first master version.
-
-
16. The computer-readable medium of claim 15 wherein the user shares read-only access with the plurality of users of the module until receiving the module into the memory space for the user.
-
17. The computer-readable medium of claim 16 further comprising maintaining a table that associates the modified and unmodified modules with a respective master version.
-
18. The computer-readable medium of claim 14 wherein providing access to the module in the first master version to the user further comprises providing access to a master version currently being accessed by the user.
-
19. The computer-readable medium of claim 18 wherein providing access to the modified module in the second master version to the user further comprises providing access to a master version that is the most current.
-
20. The computer-readable medium of claim 14 further comprising merging the modified module with a master version that is the most current if the second master version is not the master version that is the most current.
-
21. The computer-readable medium of claim 14 further comprising updating the complex system'"'"'s software, after access to the software is ended, and storing a master version that is the most current, and includes a version of all of the nodules that is the most current.
-
22. The computer-readable medium of claim 14 further comprising assigning a unique increment version number to each of the plurality of modules that is modified and saved, and generating a new master revision, after each of the plurality of modules has been modified and saved.
-
23. The computer-readable medium of claim 14 further comprising assigning an increment version number that is the same to each of the plurality of modules that is modified and saved, and generating a new master revision that includes each of the plurality of modules that have been modified and saved.
-
24. The computer-readable medium of claim 14 further comprising conducting a comparison between a master version that the user is attempting to save and a second master version that is stored by the complex system, and determining whether the master version can be save as a new master version or whether the master version should be merged with other existing master versions and saved as the new master version.
-
25. The computer-readable medium of claim 24 further comprising determining if a conflict exist between the master version and the second master version, and warning the user to save conflicting modules under different names or instructing the user to execute conflicting saves to reconcile the conflicts.
-
26. The computer-readable medium of claim 24 further comprising making a temporary copy of a master version that is stored by the complex system and implementing any modifications by deleting, adding, or renaming the module in the temporary copy of the master version, and storing an updated version of the temporary copy of the master version as the master version stored by the complex system.
Specification