Repository-based Configuration Management > Overview of repository-based configuration management (repository-based CM) > Overview of repository-based configuration management (repository-based CM)
  
Overview of repository-based configuration management (repository-based CM)
Modeler supports repository-based configuration management (CM) of models, including branching for parallel development of model items in private sandboxes. You control the database-based CM of models through Model Explorer.
Branches are useful, for example, for the following reasons:
You want isolated Model Driven Development code generation.
You want to enforce a strict review process before reconciling changes to the trunk.
You want to work remotely.
You want to develop variants of the trunk.
You want parallel development of the model.
* 
Repository-based CM features are disabled in Models that have been connected to a CM tool through the CM tool integration. Likewise, CM Tool Integration is disabled in Models that have been versioned. A model cannot use repository-based CM and CM tool Integration.
To use the branch, rebase and reconcile features:
You require a CM Integration license and a Modeler license.
You require write access permissions to the Model and the Packages you want to change. Alternatively, you can have Repository Administrator or Repository Owner access permissions to the Database that owns the model version you want to branch, rebase or reconcile.
Note that if you make changes directly to the trunk, you may also require access permissions to Packages that have changed in the trunk. We recommend that when using branches with a model, you leave the Trunk always protected and make all changes in branches of the Model.
If you are working with repository-based CM for the first time, see to see the configuration management use cases that are documented in the installation guide.
* 
If you attempt to branch a model version that contains locked items (items being changed), Modeler will abandon the branch operation. While a branch operation is in progress, other users will not be able to change the model version from which the branch is being created.
If you attempt to rebase or reconcile a model version and the model version you are reconciling or the tip version of the target trunk or sandbox contains locked items (items being changed), Modeler abandons the rebase or reconcile operation. While a rebase operation is in progress, other users will not be able to change the tip versions of the trunk and branch.