Rational Synergy controls directories as well as files. Unlike a directory in the file system, a directory created in Rational Synergy track which files belong in it. For each file that belongs in a directory, the directory has a place holder, called a directory entry. The directory entry describes the name of the file that belongs there, but not the version. For example, the directory entry for delete.c knows that it needs a file named delete.c, but does not expect a particular version of the file. All the file versions that are eligible to be used in a directory entry are called candidates.
For you to add or delete an object from a directory, the directory object must be writable. If you try to modify a directory (by adding or deleting members) that is in a non-modifiable state, Rational Synergy automatically checks out a new version of that directory for you. If your current task is set, the new directory is automatically associated with the current task. The directory is checked in with the rest of your changes when you complete the task.
Like source objects, parallel versions of directories can occur. Rational Synergy enables you to merge parallel directories. When you merge directories, you compare the differences between directory entries, and select which directory entries must be included in the merged version. For example, if one user checked out the sources directory and added an object named open.c, and another user checked out a parallel version and added an object named select.c, the merge operation would show both new directory entries and you could include them both in the merged version.