On Jan 18, 2011, at 08:15, Jan Keirse wrote:

> we would like to be able to always know who else is working on a file, so 
> that we can communicate with each other and avoid complex merges. 
> Case 1: If 2 or 3 users have to change the same file but one user has to 
> make his changes in the top of the file, someone else is making changes to 
> the bottom of the file and a third person is changing the middle of the 
> file, there's no problem, we can all work at the same time, merging the 
> changes is trivial. 
> Case 2: If 2 users have to change the same section of a file it would be 
> better if one waits for the other, because it may be hard or impossible to 
> merge the changes. 
> 
> To simplify this we would like to implement some sort of 'concurrent 
> locking': If a user wants to change a file he has to first take a lock on 
> the file, and if others also have a lock he is informed about that (so he 
> can have a chat and see if this is case 1 (and he can continue) or case 2 
> (and he should wait for the first change to be completed.)) 
> 
> As I understand it right now, locking in subversion is 'exclusive', if 
> user 1 has a lock, and user 2 also wants to lock, he has to steal the 
> lock, but when user 2 commits the changes the repository will not know 
> someone else (user 1) is still working on the file, so if a third user 
> takes a lock he will not be informed that user 1 is also working on the 
> file. 
> Could this be solved with repository hooks  or will I have to implement my 
> own 'locking' mechanism? Or would this be considered a usefull feature 
> request? What I want is basically the equivalent of the cvs edit and 
> editors commands.

I don't think Subversion's locking mechanism is something that can be modified 
in the way you suggest (not without rewriting a lot of the Subversion source 
code). I also don't think you need a locking mechanism at all. Just don't lock 
anything. Let people work concurrently. Yes, sometimes you may need to resolve 
conflicts. Hopefully it won't be too difficult to do so. I suggest you just try 
this way of working and see what you think. I think there will be fewer 
conflicts than you anticipate.


Reply via email to