About the version tree
Each time you revise and check in an element, a new version of the element is created in the VOB.
The different versions of an element in a VOB can be organized into a version tree. A version tree has branches, and each branch represents an independent line of development. Changes on one branch do not affect other branches until you merge.
In the figure above, main, pat_usability, and db_optimize are branches being used to develop concurrently different releases of the file element prog.c.
In UCM projects, the stream keeps track of which branch or set of branches you use in a project; you usually do not work directly with branches.
The initial version on a subbranch
When you create a subbranch for an element, which is any branch below the main branch, the initial version contains the same data as the version from which you start the branch. See the figure below.
The initial version on the main branch always contains no data and is empty. Version 0 on the subbranch contains the same data as Version 1, the version from which the branch starts.