AccuRev’s Stream Hierarchy

This section discusses the AccuRev implementation of software configurations. Be sure to read Software Configuration before starting this section. First, we set the scene and introduce some necessary terminology.

AccuRev’s basic job is to keep track of the changes that a development team makes to a set of files. That’s called version control. A file under version control is called an element; developers can create any number of versions of each element. AccuRev saves all the versions permanently in a depot.

Note: We are oversimplifying here. AccuRev version-controls directories as well as files; and there can be multiple depots, each one storing a separate directory tree. But the above paragraph is enough to get us into a discussion of software configurations. For more on depots and version-controlled files and directories, see section AccuRev Data Repository.

AccuRev can manage any number of configurations of a depot’s elements. Each configuration contains one version of every element in the depot, or perhaps, just some of the elements. Here are the basic data structures: