[comp.software-eng] Summary of references to source code control systems

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