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.