Each repository object has a version graph, which indicates how the various versions relate to each other. An object's version graph consists of nodes and arrows. Each node represents a version of the object and each arrow points from one object version to a successor of that object version. The following figure shows a typical version graph for an object with 11 versions.
There are two kinds of arrows. A solid arrow indicates the creation of one object version based on another. For example, the solid arrow from Version 6 to Version 7 indicates that Version 7 was created based on Version 6. That is, Version 7 was created when a program invoked the CreateVersion method on an IRepositoryObjectVersion interface pointer to Version 6.
A dashed arrow indicates the merging of property values and collections from one object into another. For example, the dashed arrow from Version 10 to Version 11 indicates that property values and collections from Version 10 were merged into Version 11. That is, the dashed arrow was created when a program invoked the MergeVersion method with an IRepositoryObjectVersion interface pointer to Version 11 (and the invoking program provided an interface pointer to Version 10 as an input parameter i).