When I’m online it seems that everyone has agreed that using the exclusive locking workflow in source control is a Bad Thing. All the new revision control systems I see appear to be built for edit and merge workflows, and many don’t even support exclusive locks at all.
However, everyone I work with is of the opinion that exclusive locks are a ‘must have’ for any source control system, and working any other way would be a nightmare. Even recent hires from other companies seem to come in with this idea.
My question isn’t who is right. I’m pretty sure what answer I’d get to that. My question is, is there really still any debate over this matter? Is there an honest ‘pro locking’ camp out there that makes a serious case? Is any work being done to advance the art of revision control based around the locking model? Or are locking fans flogging a dead horse?
EDIT: The answers so far have done a good job of explaining why exclusive locks are a good feature to use occasionally. However, I’m talking about promoting a workflow where exclusive locks are used for everything.
If you’re used to exclusive locking, then it’s hard to embrace the edit-merge workflow.
Exclusive locking has its benefits, especially for binary files (images, videos, …) which can’t be merged automatically or not at all.
But: the need for exclusive locking always indicates another problem: good communication between people working on the project. Exclusive locking provides a poor replacement: it tells users that someone else is already working on that particular file – something they should know without using a version control system.
Since there are better ways to help with the communication among team members, most (all?) version control systems don’t implement exclusive locking anymore or just a reduced version (i.e., locking, but such that those locks are not enforced).
It’s not the job of a version control system to help with the communication.