|
Linux.conf.au 2003 | Abstracts
Katie, open-source revision control system
BioPaper Audio
Katie is an open-source revision control system, intended to be a
look-alike of the proprietary ClearCase Software Configuration
Management system. The primary difference between Katie and other
open-source revision control systems is that rather than copying files
from a repository to a local working directory, the Katie server
exports the repository as an NFS filesystem. When compared with CVS,
this allows for a number of novel features:
- Any number of workspaces may be created, with no disk space penalty,
as the repository contents are logically (not physically) duplicated
in each workspace.
- The time taken for the equivalents of "cvs checkout module" and "cvs
update -r tag" is independent of the size of the repository, again
because file data does not need to be copied to the workspace.
- The renaming or deleting of files is handled in a clean manner by
supporting versioning of directories. In addition, directories may
be tagged or branched just like any regular file.
- Every revision of every file ever created (including deleted files)
is available to standard Unix commands through the filesystem in a
hidden "extended namespace"; this for example means that no
equivalent to the "cvs diff" command is required.
- The branches and versions of files and directories which a developer
sees in their workspace is determined by a small text file known as
a configuration specification. After editing this file, the
newly-selected versions are immediately visible in the workspace.
Both the Katie client and server are written almost entirely in Perl.
As there is no Perl SunRPC implementation, Inline.pm is used to link
in C code that is necessary for an NFS server. PostgreSQL is used to
store repository metadata, and the actual repository data is handled
through a replaceable storage manager.
Outline:
- Introduction
- What Katie is
- Background, influences, and history
- Concepts
- VOBs
- Elements
- Views
- Configuration specifications
- Features and Demonstration
- Mounting and using a view
- Checking directories in and out, creating and removing files
- Filesystem access to different versions of files and directories
through the extended namespace
- Tags and branches in the extended namespace
- Configuration specifications
- Discussion of technologies used:
- NFS and SunRPC
- PostgreSQL
- Perl and Inline.pm
- Future work:
- Replication and distribution
- katiemake
- Automatic generation of dependency information
- Sharing of "derived objects" between views
- Triggers written in Perl
The original Tux penguin is copyright by Larry Ewing.
Linux is a trademark of Linus Torvalds.
© 2002 Linux Australia.
|