Parallel development using projects
In a project of any size, different people may need to work on the same items. Dimensions CM provides features that enable developers to work in parallel on the same items without conflict, and to resolve and consolidate changes.
Note: Unlike projects, streams do not contain parallel versions of the same items in the repository, and conflicts are resolved in the work area.
The Dimensions CM work model for parallel development uses projects and version branches to separate concurrent activities on the same items.
The preceding figure demonstrates the following points:
You can create several projects from a baseline or existing project to support separate lines of development. A baseline typically includes all the source and derived items that constitute a previous product release. You can then edit the project by adding new item revisions to it or deleting item revisions from it.
You can associate a list of valid version branch names with a single project, so that users can check out individual items to a named branch.
You can then merge projects or item revisions so that mainstream development can pick up the changes made in parallel.
Merge item revisions
Typically, when two or more parallel streams of development occur on the same file, it is necessary to merge the separate changes at some later point in time. Dimensions CM provides a comprehensive conflict resolution facility capable of merging any number of input files. For details about comparing and merging changes to the file content of an item, see About comparing and merging files.
The following figure illustrates a scenario for version development for file foo.c, where boxes denote branches and circles indicate revisions within branches. There are three significant development branches, MAIN, WINDOWS_XP and MAINTENANCE, and two bug fix subbranches emanating from the MAINTENANCE branch. The figure also shows that some of the changes were later consolidated back into the MAIN branch and released into Release 2.0.
This scenario uses named branches within the same project.
Development changes made in parallel may need to be absorbed into mainstream, or files on local machines may need to be consolidated into version control with conflict management. This may be achieved by merging the contents of projects, baselines, and directories.
For example, two projects may be merged into a new project by including all the non-conflicting revisions and then resolving those which contain conflicting changes.
To facilitate this important project management function in an intuitive way, Dimensions CM provides the interactive Project Merge Tool for merging projects, baselines and file areas on disk.
The graphical Project Merge Tool clearly highlights differences between files on disk or in a project or baseline using color and icons. Based on the differences displayed you can select which changes to include and can invoke the Merge Tool to resolve any conflicts in a graphically intuitive way.
There is also a Merge function and a Resolve Conflicts function for use in merging the contents of projects.
Synchronize your work area
You can use the Synchronize wizard to update your work area and the items in a project folder and keep them in step with one-another. You can also use the features of the Windows Explorer plugin to work with item files outside the web client or desktop client.