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