About extended namespace for elements, branches, and versions

A version tree for an element has the same form as a standard directory tree. The figure below compares components of the version tree to components of a directory tree in extended namespace.

The version tree and extended namespace tree are compared. The version tree main branch is one vertical line of connected circles with branch1 line of versions connected to the third version from the left and branch2 connected to the fifth version from the right. In the extended namespace, the main branch is a horizonal line of versions at the same level in the hierarchy with both branch1 and branch2 line of versions connected directly to the main branch and not to the individual versions.

As a component of the version tree, the element is the root of the directory tree in the extended namespace. The element itself seems to be a directory, which contains a single subdirectory, corresponding to the main branch. (It can also contain some version labels.)

In the extended namespace, a branch in the version tree is displayed as a subdirectory. As a directory, each branch can contain files (individual versions and version labels), directories (subbranches), and links (version labels).

A version in the version tree is a leaf name of the directory tree in the extended namespace. Each version of an element is a leaf of the directory tree. For a file element, the leaf contains text lines or binary data. For a directory element, the leaf contains a directory structure.

Accordingly, any location within the version tree of an element can be identified by a path in this extended namespace:

sort.c@@
(specifies an element)
sort.c@@/main
(specifies a branch)
sort.c@@/main/branch1
(specifies a branch)
sort.c@@/main/branch1/2
(specifies a version)
doctn/.@@/main/3
(special case: extra component is required in top-level directory of VOB)