Project-based configuration management method and apparatus
First Claim
1. A method, performed by a configuration management system, for reconstructing a configuration of a project having multiple files, the method comprising:
- tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration; and
reconstructing a version of the second configuration by reusing the file version information from the first configuration wherein copying file version information of the second configuration is avoided.
3 Assignments
0 Petitions
Accused Products
Abstract
A configuration management system creates (602) each configuration by assigning a configuration identifier to each configuration. In addition, relational information is computed (706) that indicates the relationships between the configuration and any configurations upon which it is based. The system then tracks (604) changes to files of the configuration by storing information associating each new file version with the configuration identifier. The system also tracks (1210) changes to file properties. A configuration is then reconstructed (608) as of a desired date, by identifying (2104, 2106) the file versions and properties associated with that configuration as of the desired date. A determination is made (2110) whether a user that has requested the file versions has access privileges by first checking a security cache (2600) for the user privileges information. If the information is not on the cache, it is computed from a security table (2800) and stored on the cache. The system automatically compresses (3118) and reconstitutes (3006) file versions that are stored in the version store.
152 Citations
41 Claims
-
1. A method, performed by a configuration management system, for reconstructing a configuration of a project having multiple files, the method comprising:
-
tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration; and
reconstructing a version of the second configuration by reusing the file version information from the first configuration wherein copying file version information of the second configuration is avoided. - View Dependent Claims (2)
storing a filename for a file for which a new version has been created in a filename field of a record within a file contents table; and
storing a configuration identifier that identifies the first configuration in a configuration identifier field of the record.
-
-
3. A method, performed by a configuration management system, for reconstructing a configuration of a project having multiple files, the method comprising:
-
tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration, wherein pre-computing the relational information comprises;
identifying the first configuration as a configuration upon which the second configuration is based; and
determining which changes along a history line for the first configuration are incorporated into the second configuration; and
reconstructing a version of the second configuration by reusing the file version information from the first configuration.
-
-
4. A method, performed by a configuration management system, for reconstructing a configuration of a project having multiple files, the method comprising:
-
tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration; and
reconstructing a version of the second configuration by reusing the file version information from the first configuration and determining, from the file version information, a set of file versions that formed the second configuration.
-
-
5. A method, performed by a configuration management system, for reconstructing a configuration of a project having multiple files, the method comprising:
-
tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration;
reconstructing a version of the second configuration by reusing the file version information from the first configuration; and
constructing the version of the second configuration by reusing additional file version information from at least one other configuration.
-
-
6. A method, performed by a configuration management system, for providing configuration management for a project having multiple files, the method comprising:
-
creating a configuration by assigning a configuration identifier to the configuration and storing the configuration identifier;
tracking historical data pertaining to changes to files that are associated with the configuration by storing information associating the identities of new file versions that result from the changes with the configuration identifier; and
reconstructing the configuration as of a desired date by determining, from the historical data and the configuration identifier, a set of file versions that comprise the configuration as of the desired date. - View Dependent Claims (7, 8, 9, 10)
storing relational information that describes relationships between the configuration and other configurations upon which the configuration is based.
-
-
8. The method as claimed in claim 7, further comprising:
incorporating changes from the other configurations into the configuration by modifying the relational information to reflect new relationships between the configuration and the other configurations.
-
9. The method as claimed in claim 6, wherein creating the configuration comprises:
storing a name of the configuration in a configuration name field of a record within a configuration table; and
storing the configuration identifier in a configuration identifier field of the record.
-
10. The method as claimed in claim 6, wherein tracking historical data comprises:
-
storing a filename for a file for which a new version has been created in a filename field of a record within a file contents table;
storing a file identifier that is unique to the file in a file identifier field of the record; and
storing the configuration identifier in a configuration identifier field of the record.
-
-
11. A method, performed by a configuration management system, for providing configuration management for a project having multiple files, the method comprising:
-
creating a configuration by assigning a configuration identifier to the configuration and storing the configuration identifier;
tracking historical data pertaining to changes to files that are associated with the configuration by storing information associating the identities of new file versions that result from the changes with the configuration identifier and creating a record in a table with the historical data for each new version of a file that forms a part of the configuration, wherein the record includes the configuration identifier, a file identifier that is unique to the file, and a version number associated with the new version; and
reconstructing the configuration as of a desired date by determining, from the historical data and the configuration identifier, a set of file versions that comprise the configuration as of the desired date.
-
-
12. A method, performed by a configuration management system, for creating and tracking changes to a configuration of a project having multiple files, the method comprising:
-
creating the configuration by assigning a configuration identifier to the configuration, wherein the configuration initially includes a set of versions of the multiple files; and
tracking changes to the set of versions by storing historical information that associates the changes with the configuration identifier.
-
-
13. A method, performed by a configuration management system, for creating and tracking changes to a configuration of a project having multiple files, the method comprising:
-
creating the configuration by;
assigning a configuration identifier to the configuration;
adding a record to a configuration table, wherein the configuration table includes information pertaining to each configuration created by the configuration management system;
storing the configuration identifier in a first field of the record; and
storing a configuration name in a second field of the record, wherein the configuration initially includes a set of versions of the multiple files; and
tracking changes to the set of versions by storing historical information that associates the changes with the configuration identifier.
-
-
14. A method, performed by a configuration management system, for creating and tracking changes to a configuration of a project having multiple files, the method comprising:
-
creating the configuration by;
assigning a configuration identifier to the configuration;
computing relational information that describes relationships between the configuration and other configurations upon which the configuration is based; and
storing the relational information in conjunction with the configuration identifier, and tracking changes to the set of versions by storing historical information that associates the changes with the configuration identifier, wherein the configuration initially includes a set of versions of the multiple files. - View Dependent Claims (15, 16, 17)
identifying related configurations as other configurations upon which the configuration is based; and
determining which changes along history lines for the related configurations are incorporated into the configuration.
-
-
16. The method as claimed in claim 14, wherein storing the relational information comprises:
-
adding one or more records to a relational table, wherein the relational table includes information pertaining to relationships between each configuration managed by the configuration management system;
storing the configuration identifier in a first field of the one or more records; and
storing the relational information in a second field of the one or more records.
-
-
17. The method as claimed in claim 14, further comprising:
modifying the relational information when changes are incorporated into the configuration from another configuration.
-
18. A method, performed by a configuration management system, for creating and tracking changes to a configuration of a project having multiple files, the method comprising:
-
creating the configuration by assigning a configuration identifier to the configuration, wherein the configuration initially includes a set of versions of the multiple files; and
tracking changes to the set of versions by storing historical information that associates the changes with the configuration identifier; and
reconstructing the configuration as of a desired date by determining a set of file versions that applied to the configuration based on the configuration identifier and the historical information.
-
-
19. A method, performed by a configuration management system, for tracking changes to a configuration of a project having multiple files, the method comprising:
-
determining that a change has been made to a file that is associated with the configuration, resulting in a new file version;
storing historical information describing the change, wherein the historical information includes a version number for the new file version and a configuration identifier for the configuration, wherein the configuration identifier is a value that is stored with version numbers for all of the multiple file versions that comprise the configuration, and the configuration identifier was assigned to the configuration prior to determining that the change has been made to the file. - View Dependent Claims (26)
-
-
20. A method, performed by a configuration management system, for tracking changes to a configuration of a project having multiple files, the method comprising:
-
determining that a change has been made to a file that is associated with the configuration, resulting in a new file version;
storing historical information describing the change, wherein the historical information includes a version number for the new file version and a configuration identifier for the configuration, wherein the configuration identifier is a value that is stored with version numbers for all of the multiple file versions that comprise the configuration, and the configuration identifier was assigned to the configuration prior to determining that the change has been made to the file; and
storing ordering information along with the version number, wherein the ordering information indicates where the new file version occurs within a sequence of changes to file versions associated with the configuration. - View Dependent Claims (21, 22, 23)
-
-
24. A method, performed by a configuration management system, for tracking changes to a configuration of a project having multiple files, the method comprising:
-
determining that a change has been made to a file that is associated with the configuration, resulting in a new file version;
storing historical information describing the change by;
adding a record to a file contents table, wherein the file contents table includes information pertaining to each file version managed by the configuration management system, storing the version number for the new version in a first field of the record;
storing the configuration number for the configuration in a second field of the record; and
storing ordering information indicating where the new file version occurs within a sequence of changes to file versions associated with the configuration in a third field of the record;
wherein the historical information includes a version number for the new file version and a configuration identifier for the configuration, wherein the configuration identifier is a value that is stored with version numbers for all of the multiple file versions that comprise the configuration, and the configuration identifier was assigned to the configuration prior to determining that the change has been made to the file.
-
-
25. A method, performed by a configuration management system, for tracking changes to a configuration of a project having multiple files, the method comprising:
-
determining that a change has been made to a file that is associated with the configuration, resulting in a new file version;
storing historical information describing the change by storing a file identifier that uniquely identifies each file managed by the system in association with the version number and the configuration identifier, wherein the historical information includes a version number for the new file version and a configuration identifier for the configuration, wherein the configuration identifier is a value that is stored with version numbers for all of the multiple file versions that comprise the configuration, and the configuration identifier was assigned to the configuration prior to determining that the change has been made to the file.
-
-
27. A method, performed by a configuration management system, for incorporating changes made to files of a first configuration of a project into files of a second configuration of the project, where the second configuration is related to the first configuration, the method comprising:
-
storing information describing operations that copy a first version of a file from an originating configuration into a destination configuration;
receiving a request to perform a merge operation that will merge, from the destination configuration into the originating configuration, a second version of the file that is a modified version of the first version;
determining, from the information, whether the first version of the file should be included in the merge operation; and
if the information indicates that the first version is to be included in the merge operation, including the first version in the merge operation. - View Dependent Claims (28)
-
-
29. A method, performed by a configuration management system, for constructing a desired configuration of a project having multiple files, wherein the desired configuration is a version of a configuration of the project as of a desired time, the method comprising:
-
determining a configuration identifier for the desired configuration;
identifying versions of the multiple files that are to be included in the desired configuration as a set of the versions that are associated with the configuration identifier at the desired time; and
assembling the set of versions. - View Dependent Claims (35)
-
-
30. A method, performed by a configuration management system, for constructing a desired configuration of a project having multiple files, wherein the desired configuration is a version of a configuration of the project as of a desired time, the method comprising:
-
determining a configuration identifier for the desired configuration;
identifying versions of the multiple files that are to be included in the desired configuration as a set of the versions that are associated with the configuration identifier at the desired time;
assembling the set of versions; and
evaluating relational information to identify additional file versions, which are associated with related configurations, that are to be included in the desired configuration, wherein the related configurations are configurations upon which the desired configuration is based, and the relational information describes relationships between the configuration and other configurations upon which the configuration is based. - View Dependent Claims (31)
creating a virtual table by joining together a relational table and a file contents table, wherein the relational table includes information identifying changes in configurations that apply to the desired configuration, and the file contents table includes information identifying each file version managed by the system and information that maps the changes to identities of the file versions; and
determining, from the virtual table, latest versions of the files to be included in the desired configuration, wherein the latest versions are those file versions that have highest version numbers but occur before the desired date.
-
-
32. A method, performed by a configuration management system, for constructing a desired configuration of a project having multiple files, wherein the desired configuration is a version of a configuration of the project as of a desired time, the method comprising:
-
determining a configuration identifier for the desired configuration;
identifying versions of the multiple files that are to be included in the desired configuration as a set of the versions that are associated with the configuration identifier at the desired time;
assembling the set of versions; and
identifying properties and property values associated with the versions of the multiple files that are to be included in the desired configuration as a set of the properties that are associated with the identified file versions at the desired time. - View Dependent Claims (33)
creating a virtual table by joining together a property contents table and a file contents table, wherein the property contents table includes information;
identifying each property managed by the system an the value of each property at identified times, and the file contents table includes information identifying each file version managed by the system; and
determining, from the virtual table, latest properties and property values of the file versions to be included in the desired configuration, wherein the latest properties and property values are those properties and property values that have latest identified times that occur before the desired date.
-
-
34. A method, performed by a configuration management system, for constructing a desired configuration of a project having multiple files, wherein the desired configuration is a version of a configuration of the project as of a desired time, the method comprising:
-
determining a configuration identifier for the desired configuration;
identifying versions of the multiple files that are to be included in the desired configuration as a set of the versions that are associated with the configuration identifier at the desired time;
assembling the set of versions; and
determining whether a user who is requesting the desired configuration has access privileges for the file versions that comprise the desired configuration; and
if the user does not have access privileges, not assembling the file versions.
-
-
36. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for providing configuration management for a project having multiple files, the method comprising:
-
tracking file version information for files that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration; and
reconstructing a version of the second configuration by reusing the file version information from the first configuration wherein copying file version information of the second configuration is avoided.
-
-
37. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for providing configuration management for a project having multiple files, the method comprising:
-
tracking property information for properties that are modified in a first configuration of a software project;
pre-computing relational information that describes relationships between a second configuration and the first configuration; and
reconstructing a version of the second configuration by reusing the property information from the first configuration without copying property information of the second configuration.
-
-
38. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for providing configuration management for a project having multiple files, the method comprising:
-
creating a configuration by assigning a configuration identifier to the configuration and storing the configuration identifier;
tracking historical data pertaining to changes to files that are associated with the configuration by storing information associating the identities of new file versions that result from the changes with the configuration identifier; and
reconstructing the configuration as of a desired date by determining, from the historical data and the configuration identifier, a set of file versions that comprise the configuration as of the desired date.
-
-
39. A computer-readable medium holding computer executable instructions, the computer-readable medium for performing a method in a computer system for providing configuration management for a project having multiple files, the method comprising:
-
creating the configuration by assigning a configuration identifier to the configuration, wherein the configuration initially includes a set of versions of the multiple files; and
tracking changes to the set of versions by storing historical information that associates the changes with the configuration identifier.
-
-
40. A computer system for performing configuration management comprising:
-
a processing unit for tracking file version information for files that are modified in a first configuration of a software project, pre-computing relational information that describes relationships between a second configuration and the first configuration, and reconstructing a version of the second configuration by reusing the file version information from the first configuration without copying file version information of the second configuration;
a system bus, coupled to the processing unit, for coupling a computer-readable media to the processing unit; and
the computer-readable media, coupled to the system bus, for storing the relational information.
-
-
41. A computer system for performing configuration management comprising:
-
a processing unit for creating a configuration by assigning a configuration identifier to the configuration, tracking historical data pertaining to changes to files that are associated with the configuration by storing information associating the identities of new file versions that result from the changes with the configuration identifier, and reconstructing the configuration as of a desired date by determining, from the historical data and the configuration identifier, a set of file versions that comprise the configuration as of the desired date;
a system bus, coupled to the processing unit, for coupling a computer-readable media to the processing unit; and
the computer-readable media, coupled to the system bus, for storing the configuration identifier, the historical data, and the set of file versions.
-
Specification