# Branching and Versioning

Author: Eike Stepper

This chapter describes how to work with branches and versions in CDO client applications. Branching and versioning are essential for supporting parallel development, tracking changes, and maintaining historical data in model repositories.

CDO provides powerful APIs for creating, navigating, and merging branches, as well as accessing and comparing historical versions of model objects. Understanding these features enables advanced collaboration and data management scenarios.

## 1 Working with Branches

Branches allow multiple lines of development within a CDO repository. This section explains how to create new branches, switch between branches, and manage branch hierarchies. Learn best practices for using branches to support feature development, bug fixes, and release management.

## 2 Accessing Historical Versions

CDO tracks all changes to model objects, enabling access to historical versions. This section covers how to query and retrieve previous states of objects, analyze change history, and restore data from earlier revisions.

## 3 Comparing Versions

Comparing versions is crucial for understanding changes, resolving conflicts, and merging branches. Learn how to use CDO's APIs to compare object states across branches and revisions, and visualize differences in model data.

## 4 Merging Changes

Merging changes from different branches or versions is a common task in collaborative development. This section explains how to merge model data, resolve conflicts, and ensure data integrity during merges.

Copyright (c) 2004-2025 Eike Stepper (Loehne, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html