Version control of models is similar to version control of Smalltalk code, but with some differences to accommodate the extra subcomponents of the UML Designer metamodel. Generally speaking, you can think of a model as an application with a single class representing the model; in fact, a model is stored as an ENVY application, with model elements stored within private storage classes.
For version control purposes, the elements in the model behave somewhat similarly to the methods of a class, in that they are editioned and released automatically when you save changes. Unlike methods, though, some model elements can also have child elements. For example, a protocol contains message specifications, which in turn contain parameters. To see the parent-child relationships among elements, use the Contents filter in the Relationships Browser.
In order to make changes, you must have an open edition of the model. Each time you save changes to a model element, a new edition is created for that element, and the parent element points to the new edition. A model (like a class) is versioned as a whole. Normally, only one user owns a model and its open editions, but different users can have different editions open.
Each edition of a model or element points to the released edition of each element it contains. An element is automatically released to its parent when it is created, loaded, or changed. You can also use the UML Designer Editions Browser to manually release a different edition.