Multiple Checkout
Multiple checkout addresses that problem by using a different approach. Instead of using a lock-update-unlock approach where access is limited to one person at a time, this approach permits more than one person to make a copy of the file, make changes and then merge those changes with the then-current version to create a new version.
In order for multiple checkout to work, the version control system needs to be able to figure out what has changed between the current version of a file and the version that you started with and the one containing the changes you’ve made. Version control systems use a differencing algorithm to find what has been changed, and what changes need to be applied to make the original identical to the new version (and vice versa, so the previous version can be recovered once the new version is committed). Differencing algorithms have their limitations though. First, they really only work well with text files. Binary files – for example, an image – just don’t lend themselves well to differencing in the context of a change management system. Secondly, they can’t always figure out the right thing to do when sets of changes could result in more than one outcome. That particular circumstance is called a “merge conflict.”