Conflicts and dependencies

An object version does not stand alone. It includes all of the changes for predecessors. Each successive version is checked out from the earlier version and is based on the contents of the earlier version.

Dependency relationship is a key concept in understanding conflicts. In a dependency relationship, suppose bar.c-1 is associated with task 12, bar.c-2 is associated with task 25, bar.c-3 is associated with task 37, and bar.c-4 is associated with task 48. Therefore, bar.c-4 contains not just the change from task 48, but also the changes from tasks 37, 25, and 12.

How do dependencies affect the project configuration? If your project contains bar.c-3, does it contain task-37? Yes. But it also contains tasks 25 and 12 because bar.c-3 includes the predecessor changes. What if task 37 is in the update properties for the project, but task 25 is not? Then it meets the definition of a conflict: A change that is in your project, but not in your update properties.

So far, the example of bar.c is one dimensional. When you consider that each task can be associated with other object versions, dependencies become much more complex. For example, say task 37 (associated with bar.c-3) is also associated with main.c-6. If bar.c-3 or one of its successors is included in your project, then main.c-6 or one of its successors should also be included in your project. Furthermore, the tasks associated with the predecessors of main.c-6 are included in your project, so their other associated objects are included, too. Rational® Synergy analyzes the history and task relationships to determine which changes are included, and which are to be included based on dependencies.

Your project is based on another project, called its baseline project. The baseline project contains all the changes to earlier versions of its member objects. Rational Synergy needs to look for conflicts in only the differences between the current project and the baseline project. Therefore, conflict analysis looks at each of the project members only as far back as the version that is in the baseline project.


Feedback