Coordinating the work of multiple developers is done solely via the central source code repository. Developers check out the latest versions at the head of the main development trunk or the tip of a release branch, change the sources, and commit the changes back to the source code repository, where the committed version becomes the new head of trunk or tip of branch. Figure Figure 3-2 will give you a graphical view of the situation.
Elego ComPact favours a cooperative model that refrains from the use of locks for files or packages. If two developers have made changes to the same package (which usually indicates a lack of communication and coordination between the developers), ComPact offers an automated procedure for conflict resolution. The developer who has been unfortunate to not have checked-in his changes first, is informed of the fact that his version of the package is not based on the latest version of the repository and that an update of his local workspace is needed in order to be able to commit her/his modifications. Doing this update, the changes already committed to the repository are merged with the changes contained in the local workspace. If no serious conflicts are present (i.e. the developers did not actually change the same locations of text), no further human intervention is required. If ComPact is not able to dissolve all conflicts, the developer is presented with both versions as alternatives and may edit the final one that is to be committed.
After every local merge the complete package should of course be built again and tested, before it is committed back to the source code repository.