So far, we've only considered versioning scenarios in which the versioned file is independent from all other versioned files. Versioning gets much more complicated when multiple files with relationships to each other may be checked out and checked in.
Let's imagine a simple Java program for finding employee information, department information, and which employees are in which department. The program requires only two source files,
Department.java, and each file corresponds to a Java class. The Java object for a Department references a number of Employee objects when the code runs. Thus,
Department.java must reference the other file when it is compiled. If Department calls a method getID() on Employee, ...