Object-Version Identifiers and Internal Object-Version Identifiers
Each RepositoryObjectVersion instance has two identifiers: an object-version identifier and an internal object-version identifier.
An object-version identifier uniquely distinguishes a repository object from all other repository object versions represented in all other repository databases.
Internal object-version identifiers correspond to object-version identifiers, except that internal object-version identifiers are used by the repository engine. Object-version identifiers and internal object-version identifiers are described in this topic. Another kind of repository identifier identifies a RepositoryObject instance. To use identifiers, you need to know about both kinds. For more information about other repository identifiers, see Object Identifiers and Internal Identifiers.
About Object-Version Identifiers
The object-version identifier has the following format.
The first 16 bytes of each object-version identifier constitute a globally unique identifier (or GUID).
The next 4 bytes constitute a local identifier. Note that the local identifier of a repository object version does not equal the local identifier of a RepositoryObject instance.
The next 8 bytes constitute a version indicator. Each object version gets a unique value that identifies a specific version of a particular object (for example, version 3 of an Employee object). To get a specific version of an object, you have to traverse the version tree of an object.
About Internal Object-Version Identifiers
Each RepositoryObjectVersion instance also has an internal object-version identifier that distinguishes it from every other object version within the same repository database. The internal object-version identifier is a 16-byte quantity of the following form.
The first 4 bytes constitute a site identifier (site ID). For more information about site IDs, see How Repository Identifiers are Stored and Instantiated.
The first 4 bytes constitute the local identifier (local ID) of the repository object. The second 4 bytes constitute a branch identifier (branch ID); a branch is a portion of a version graph. The third 4 bytes constitute a version-within-branch identifier.
The first 8 bytes make up the internal identifier of the repository object version. The next 8 bytes make up a version identifier.
See Also
Repository Identifier Data Structures