We have just started using VisualSVN, TortoiseSVN and ankhSVN plug-in to handle our source control. Initially we were good with the Copy-Modify-Merge style, but we have now found a need to move to the Lock-Modify-Unlock method. But we already have like 15 projects in our repository that follow Copy-Modify-Merge.
What do I need to do to configure our repository to require locks for the existing projects and any projects that will be added in the future. I have seen the documentation on svn:needs-lock but I don’t understand how to use this to move our shop to Lock-Modify-Unlock.
Can anyone please give me the “for dummies” explanation of how to set up VisualSVN server as well as our client machines to require locking for the existing projects and newly added projects?
Subversion does not offer a strong lock-modify-unlock mechanism. But, if you right click on any file in subversion you get the option to lock it. This prevents anyone else from checking in until they have the lock or the lock’s been released.
You can mark files as needing a lock by setting the svn:needs-lock property, see here:
http://svnbook.red-bean.com/en/1.8/svn.advanced.locking.html#svn.advanced.locking.lock-communication
and
http://svnbook.red-bean.com/en/1.8/svn.ref.properties.html
You don’t have to set it for every file in the project, you can have it for individual files quite happily.
However, the edit-merge-commit operation is the default in every modern source control system for a reason. Even TFS. Again, I recommend Eric Sink.