SCM HistorySCM History
In computing, SCM can be approached from a historical perspective, in which CM (for Configuration Management) was used earlier, originally for hardware development and production control. History records tend to be based on tools and companies, and let concepts to a secondary plane.
- early 60's or even late 50's: IBM UPDATE
- late 60's early 70's, Professor Leon Pressor at University of California Santa Barbara did a thesis on change and configuration control. This concept was a response to a contract he was working on with a defense contractor who made aircraft engines for the Navy.
- early 70's: make
- by 1970 CDC update was an advanced product
- circa 1972: Bell labs paper describing the original diff algorithm
- 1972 or 73, with an IEEE paper in 1975: SCCS (Mark Rochkind)
- 1975: Pr Pressor's work eventually grew into a commercially available product called Change and Configuration Control (CCC) which was sold by the SoftTool corporation.
- Revision Control System (RCS, Walter Tichy)
- early 80s: patch (around 1988, Larry Wall)
- 1984 Aide-de-Camp (ADC, later TrueChange around 1990, Richard Harter)
- Concurrent Version System (CVS)
Until the 80s, as can be seen from a source such as Software Configuration Management
by J.K. Buckle (1982
), SCM could only be understood as CM
applied to software development. Some basic concepts such as identification
(well-defined point in the evolution of a project) were already clear, but what was at stake was a set of techniques oriented towards the control
of the activity, and using formal processes, documents, request forms, control boards etc.
It is only after this date that the use of software tools applying directly to software artefacts representing the actual resources, has allowed SCM to grow as an autonomous entity (from traditional CM).
The use of different tools has actually led to very distinct emphases. Maybe one can pick up three:
- traditional CM for Software, typically around Change Mananagement (examples: Continuus or ClearCase UCM)
- line oriented management, based on patches or Change Sets (examples: CVS or TrueChange)
- focused on Derived Objects and Build Management (example: Base ClearCase/clearmake)