Monday, March 12, 2007

Component Features in CM Functionality

Repository:
(from Spectrum of Functionality in Configuration Management Systems)
RCS provides the notion of a repository for source code ASCII files. In effect, the repository is a centralized library of files and provides version control. Most CM systems use some kind of notion of a repository. Any component in the repository is considered to be under a form of CM. All the CM information about files and the content of the files are kept in the repository. Hence, any CM controls pertain to what is in the repository. Users access the repository to glean information about the files.
To work on the file, users withdraw (that is, check out) a particular file into their working directory, perform any work on the file, and, at any point in time, replace it in the repository (that is, check it back in). Replacing the file means creating a new version of that file. A version number is automatically associated with each replaced file; consequently, users can withdraw any file with a particular version number at any time. So that users cannot simultaneously withdraw the same file and work on it, once the file is withdrawn, it is automatically locked until it is replaced.
The repository stores file history information which includes the different versions of the files, the reason for a change, who replaced that version of the file and when. Note that the complete code for the different versions is not stored. Rather, only the actual difference between each version is stored; this is known as the delta. This assists in space savings and access time to a particular version.

Distributed Components:
(from Spectrum of Functionality in Configuration Management Systems)

DMS provides a repository that controls files distributed on different hardware platforms. The repository is centralized, but the data from the repository can be distributed. DMS is aware of the distribution and carries out its CM taking that into account, such as by providing some fault tolerance facilities along with the necessary translations of file formats. So, to the users, the distribution is transparent. Users carry out their work on the repository as though all the files were located on their own workstations. When they are ready to return the changed files to the main repository, they use the DMS facilities.
A team of users geographically dispersed can be working on the same configuration of files. Multiple copies of files can exist on different workstations. Any changes to files in the repository can result in the local copy on the distributed workstations being updated since the system knows where all the local copies are. In effect, distributed users have access to a centralized repository, and to them the CM facilities seem to span the network of heterogeneous workstations.