In Rational Synergy, 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 relationships is a key concept in understanding conflicts. Let's take a look at a dependency relationship: Suppose that 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.
Now let's see how dependencies affect your project's 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 its predecessors' changes. What if task 37 is in your project's update properties, 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 foo.c-6. If bar.c-3 or one of its successors is included in your project, then foo.c-6 or one of its successors should also be included in your project. Furthermore, it means that the tasks associated with the predecessors of foo.c-6 are included in your project, so their other associated objects will be included, too. Rational Synergy analyzes all of the history and task relationships to determine which changes are included, and which should 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's members only as far back as the version that is in the baseline project.