Repository-based Configuration Management > Overview of repository-based configuration management (repository-based CM) > Repository-based configuration management terminology (repository-based CM)
  
Repository-based configuration management terminology (repository-based CM)
This topic uses an example to demonstrate the terminology that is used for documenting the database-based configuration management (CM) in this Help.
The model versions in this example have been created through the following repository-based CM operations:
Creating new versions - v1, v2 and v4.
Creating branches - v1.0.0 and v2.0.0.
Rebasing branches - v2.0.1.
Reconciling branches - v3.
Branch
A branch is a secondary thread of model versions in the model tree. A branch is usually created from the tip version of the trunk. After a branch is complete, it can be reconciled with the trunk or another branch that was created from the same trunk version.
Branching
Branching is the act of creating a branch from a model version in the trunk.
Model Tree
The model tree is all model versions of a model. If you delete the Model Tree, you delete the complete model.
Model Version
A model version is a specific version of the model, which is uniquely identified by the model version's version number.
Protected Version
A protected version of a model is frozen and cannot be changed, except for its access permissions and version comment.
Model Explorer protects a model version in the trunk when you create a new version of it, create a branch from it, rebase a branch from it, or reconcile a branch into it.
Model Explorer protects a model version in the branch when you rebase it or reconcile it into the trunk.
When Model Explorer protects a model version, it is independent of the manual protection you can set in Modeler through the Property Pages of a Model or Package.
* 
In the example, it is possible for the two tip versions to be protected.
Rebasing
Rebasing is the act of merging the tip version of the trunk into a branch. When a branch is rebased, the changes that have been made to the trunk (since the branch was created) are merged into the tip version of the branch.
If there are clashes in which items have been changed in both the trunk and the branch, the Clashes dialog lists each clash and allows you to choose whether to use the trunk value or branch value in each case. For more information about the Clashes dialog, see Resolving clashes - the clashes dialog (repository-based CM).
Reconciliation
If there are clashes in which items have been changed in both the source and target model versions, the Clashes dialog lists each clash and allows you to choose whether to use the source or target value in each case. For more information about the Clashes dialog, see Resolving clashes - the clashes dialog (repository-based CM).
Reconciliation is the act of merging a branch into the trunk or another branch. When a branch is reconciled, the changes in that branch are merged into the tip version of the trunk or other branch.
Sandbox
See Branch.
Tip Version
A tip version is the latest model version in the trunk, or the latest model version in a branch that has not been reconciled.
You can only change the tip versions of a model. If you want to change a tip version of a model that is protected, you typically create a new version of it, and then change the new version. When you explore a database in Model Explorer, only tip versions of a model are listed by default. Non tip versions of the model are shown only when Model Explorer is in advanced mode.
Trunk
The trunk is the main thread of model versions in the model tree, that is, the trunk includes model versions that are not in branches.
Version Number
The version number of a model uniquely identifies the model version.
In Model Explorer, the version number of a Model is displayed in the Version column.
In Modeler, the version number of the open Model is displayed in the Modeler title bar and in the General tab of the Model's Property Pages.
The version number of a model version in a trunk has an integer value, such as 3.
The version number of a model version in a branch has three parts delimited by periods, such as 2.1.1. The value of each part is determined as follows:
The first part is determined by the model version in the trunk from which the branch was created. For example, model version 2.1.1 is branched from model version 2 in the trunk.
The second part is determined by how many branches have been taken from that specific model version in the trunk. For the first branch from a model version the value is 0, for the second branch from the same model version the value is 1, and so on. For example, model version 2.1.1 is the second branch to be taken from model version 2 in the trunk.
The third part is determined by how many times the model version in the branch has been versioned. For a model version in a new branch the value is 0, for the next version of that model version in the same branch the value is 1, and so on. For example, model version 2.1.1 is the second version of the model in that branch.