Currently, Version Control Branching is not directly supported by EA. We have some ideas that we are investigating on how we might achieve it in the future, but it will be some time before we can implement a solution.
The XMI package files that are exported by EA for version control purposes, contain the name of the associated VC configuration. This allows functions such as "Get All Latest" to recursively populate an entire model from just the root package. However, it also makes it difficult to change the VC configuration that is used by a model.
The XMI file format is one that cannot be merged in the same way that program source code can be merged. Yes, it is human readable text, but it must be treated as a binary file for VC purposes. (Google search "merge XMI" for the current state of play in this area.)
EA's VC configuration data is stored in your Windows registry and in a file in your Application Data directory. Currently, EA's VC configurations can be associated with only one working copy folder at any given time. You can change it, but that change will affect ALL package file access using that definition.
So, at present, you can make a copy of your EA model, say "Model-1_0", but it will still be using the same VC configuration and therefore still accessing the same set of XMI package files, namely the HEAD revision of those files.
If you create a branch in your version control system, so that you have a separate set of files in the VC repository and a corresponding separate set of files in a "revision 1.0" working copy directory, you can point EA's VC configuration to the "revision 1.0" working copy folder, but both models, "Model--1_0" and "Model--1_1", are still using the same VC configuration, so both models are using the same set of working copy files.
You can point the VC config to the "rev 1.0" working copy, perform a "Get All Latest" and your model is reverted to revision 1.0. If you then point the VC config to the "rev 1.1" working copy and perform a "Get All Latest", the model will be updated to revision 1.1.
It is possible to save copies of EA models at different revision levels and to have them associated with the appropriate revision in version control, but to maintain two different revisions on the same PC would be difficult and would require careful (manual) management of which VC revision is in use at any particular time.
If particular users will be working with their own particular revision of the model, then conceivably each group could be set up to use just the revision they are interested in, without causing any conflicts.
If users attaching to a (single) Shared model, were accessing different revisions in Version Control, this could only result in chaos.
EA does offer a facility to create baselines from selected packages within your model. You can subsequently compare differences to baselines and merge changes back into your model. It is possible to import baselines from previously exported XMI files (including those exported for version control) and to import baselines that are stored in other models (so long as it is the same package).
When it comes to running two separate branches of development on distinct revisions of the same model, the following procedure should achieve the result you are looking for;
1. Apply version control to the model root node
2. Export the model root node as a "model branch" (Right-click, "Package Control | Export as Model Branch".)
3. Outside of EA, use your VC product to create a version control branch (based on the revision appropriate to your needs).
4. Outside of EA, use your VC product to create a working copy, derived from the branch created in the previous step.
5. Outside EA, use a text editor that provides a "Replace in Files" function (PSPad is a good example), to modify the name of the VC configuration referenced in each and every XMI file, as well as the model branch file. If your original configuration's UniqueID was "myConfig", replace every occurrence in every file with say, "myConfig-1_0".
NOTE: If you are using Subversion as your VC product, all of the XMI have a "needs-lock" property set on them. You must apply a lock before you can modify the file and commit the changes.
6. Check-in or commit the modified files, to your VC repository.
7. Back in EA, create a new, empty project.
8. Open the VC Settings dialog and create a new VC configuration to use with this new project, called "myConfig-1_0".
(Use the new name that was used in the "replace" operation in step 5.)
9. Right-click the existing root node and choose "Package Control | Import a Model Branch". Choose the configuration "myConfig-1_0", then choose the model branch file that you exported in step 2. Import the branch.
10. When prompted, choose to import XMI as a model root.
The result should be a copy of the model, associated with VC branch "revision 1.0".
regards,
Howard.