Configuration Management Version Control (CMVC) is a software package that serves as an object repository, and performs software version control, configuration management, and change management functions.
This was a client-server based system, with command-line and graphical clients for several platforms and servers available for several flavors of Unix.
A relational database was used to keep tracking information but a separate Source Control Manager such as Source Code Control System (SCCS) or PVCS was used to maintain version history for each file. The filenames for these files are actually stored in the relational database - as a result, filenames in the SCCS tree are numeric ids.
Components form a directed graph where each Component can have several parents. Components are a logical grouping mechanism allowing Files to be grouped together without regard to their physical pathnames (unlike directories or folders which lie on the path).
Permissions can be given at the Component level, allowing for distributed administration. The permission to give other permissions can be granted.
A Release was a set of files with a common root. Releases could share files with other releases. The sharing could be defined to follow the latest version (sometimes called "tip") or a specific version within the release. This was called "linking".
A Level is a snapshot of all files. Similar to a "tag" in other source control systems - but with a twist. If the Release is in "binding mode" (most commonly used), the Levels contain only the files referenced by the LevelMembers (Defects and Features). As a result, a Level only contains changes (file versions) that are approved and not just the latest file versions in the repository.
Locking used to be the only mechanism for controlling access to files. This was typical for source control systems of that time period but would be considered a major weakness today. The most current implementation has become more robust, allowing concurrent development, conflict resolution and merge.
Having a centralized server limits the ability to work in disconnected manner. Although, this is a failing of nearly all remote source control systems unless a local repository is created, giving the illusion of redundancy and source control, which will ultimately require a sync with the remote source control server at some point to submit any deltas.
Di Grande, Carmine (1994), Did You Say CMVC?, IBM RedBooks
Trulsson, Leif (1995), Looking at CMVC From The Customer Perspective, IBM RedBooks
Yu, Seong R. (1994), "A versatile development process for small to large projects using IBM CMVC", Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research, IBM Press
Bruckhaus, Tilmann (1993), "The impact of inserting a tool into a software process", Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1