dsims@uceng.UC.EDU (david l sims) (06/26/91)
SUMMARY OF REFERENCES TO SOURCE CODE CONTROL SYSTEMS I've included only the research-type systems as that is what I'm most interested in. (Besides, you can learn about them without having to browse through promotional literature :=) For those of you primarily interested in commercial systems, sorry. --David Sims, dsims@uceng.uc.edu ********** (1st article of two articles) You should have a look at the shape-toolkit, a collection of UNIX-programs integrating version control and configuration management for the development of complex software systems. The following is an excerpt from the shape-toolkit's README file: The shape version control system ("shape_VC") ---------------------------------------------- The shape version control system is a set of UNIX level (1) commands. Shape_VC offers version control functionality similar to systems like RCS or SCCS with some significant extensions and a more UNIX-like command interface. Shape_VC comprises - storage and retrieval of multiple revisions of files. - a built in status model for revisions. (States: busy, saved, proposed, published, accessed, frozen) - documentation of change histories. - synchronization of concurrent updates to a history. - symbolic names for versions. - a network user concept. - full (read and write) access to user definable attributes. The last point in the list deserves some more attention, because this is a thing that goes beyond the scope of pure version control functionality. As the underlying storage system (AtFS) supports associating any number of attributes with each version, shape_VC uses this mechanism to allow the user to attach his/her own management information in form of attributes to stored revisions. The attribute mechanism supports - genuine attributes (name=static_value) where the attribute value is given statically. - execution attributes (name=!executable_program) where the attribute value is built dynamically by executing a given program or shell script and catching it's output. - reference attributes (name=@filename) where the contents of a file is taken as attribute value. The toolkit character of the system allows to use it via shell commands, or to build a customized environment on top of it. As an example, we built an alternate user interface to the system using GNU-Emacs which lead to a much more comprehensive, integrated user interface. The corresponding emacs lisp code is contained in the distribution. The Attributed File System (AtFS) --------------------------------- [ Formerly, we used the acronym AFS which often lead to confusion with CMU's Andrew File System, so we changed the name slightly. Despite the new name, there are still some leftovers like eg. the naming of the subdirectory containing AtFS internal data. This is still named AFS. ] AtFS is the base abstraction of the whole toolkit. It provides uniform access to immutable revisions of files stored in special archives (in a directory named "AFS"), and mutable regular UNIX files. Consequently, the AtFS based toolkit lives peacefully (and meaningfully!) together with standard file system applications (editors, compilers, formatters etc.). Cooperative work within projects is supported by a build-in status model, controlling visibility of version objects, and locking, a primitive form of "long transactions" for synchronizing concurrent updates. The general concept of object attributes provides a basis for storing management information with versions and passing this information between individual tools. This mechanism is useful for building integrated environments from a set of unrelated tools. AtFS also supports derived object management, i.e. it maintains a cache of multiple versions of compiled object-files (e.g. compiled c-files with different compile switches). People with sophisticated requirements may also add their own applications on basis of AtFS to the toolkit. There is a fully documented C-language interface to AtFS, on top of which all the toolkit programs are built. ----- Papers, describing the toolkit are: Axel Mahler, Andreas Lampen "An Integrated Toolset for Engineering Software Configurations" Proceedings of the ACM SOFSOFT/SIGPLAN Software Engineering Symposium on Practical Software Engineering Environments Boston MA, 28-30 November 1988 pp. 191-200 SIGSOFT SE Notes V13-No5, SIGPLAN NOTICES V24-No2, Andreas Lampen, Axel Mahler "An Object Base for Attributed Software Objects" Proceedings of the EUUG Autumn '88 Conference Cascais (Portugal) 3-7 October 1988 pp. 95-105, European UNIX User Group, London 1988 The shape-toolkit is in the public domain and available via anon ftp from scam.berkeley.edu or from coma.cs.tu-berlin.de . A new, much enhanced version will be completed soon. The enhancements mostly concern the configuration management component, however. ********** (2nd article of two articles) There is a group in Brazil, more specifically at UNICAMP, that was working on source code control. You can get in touch with: Dr. Geovanne Magalhaes geovanne@bruc.ansp.br.bitnet -- David Sims, dsims@uceng.uc.edu