RCS Terminology Cross Reference

Different Revision Control Systems use different terms to describe the same code organization concepts. Sometimes the concepts are exactly equivalent, sometimes there's an important twist. Buildbot already abstracts the core concepts quite well. However there's a big need for more the next layer of RCS complexity to handle more complicated projects. Some examples are:

  • Watching multiple types of repositories in a single master.
  • Watching multiple separate logical code units in a single repository.
  • Bundling multiple pieces of software into an installer.
  • <Add your convoluted build problem here>

The headers are the terms we should use in discussions and code. The rows are the terms the native repositories use. This has great bike shed potential, so let's try not to overthink this too much.

RCS Change URL Code Unit Branch Tag Build directives Revision
CVS diff/patch
SVN diff/patch svn url project branch tag externals? revision (int)
Git delta/patch git url module branch/fork ?? ?? sha1 (str)
Mercurial changeset url/path repository branch / repository tag subrepos?/forest ? sha1 (str)
Darcs
Bazaar
Perforce category?
BitKeeper changeset url(?) repository repository tag ?? changeset key (str)

References