On Sep 15, 2005, at 05:59, Kalin KOZHUHAROV wrote:
>> On Sep 14, 2005, at 6:55 PM, James McNeill wrote:
>>
>>> Locking a file only locks it in one place in the repository.  If   
>>> you have a
>>> trunk and a branch version of a non-mergeable (binary, usually)   
>>> file, it is
>>> still possible for people to make changes to both copies   
>>> simultaneously and
>>> end up with non-mergeable changes.
>>>
>>> Has anyone thought about ways to prevent this from happening?
Difficult, since Subversion does not have a concept of branches or  
tags. They're all just copies. The fact that you treat a branch or a  
tag differently is just a convention; it's not codified anywhere in  
the repository data.
I think the only possible thing Subversion could do would be to  
notice that branches/release-1.1/foo was copied from trunk/foo and  
therefore if trunk/foo is locked then branches/release-1.1/foo would  
be automatically locked as well. I don't think that's what everyone  
desires though. What if I copied foo to a completely different  
project in the same repository, because they start out by sharing  
some resources, but then diverge over time? I wouldn't want the new  
project's foo to be locked just because the original project's foo  
was. And since branches and tags are just copies, Subversion has no  
way of knowing whether you are copying something to a new branch or  
tag or whether you're copying to an unrelated project.
> Ben Collins-Sussman wrote:
>
>> Why not lock both locations?  You can run 'svn lock' on URLs if  
>> you  wish.
>
> What if there are 231 branches + trunk :-) You have to lock 232  
> URLs...
What kind of development are you doing where you need to keep 232  
parallel development tracks? That's ludicrous. In our projects, we  
have the trunk, and we have the most-current release branch, and  
that's it. If we used locks, then we'd lock the file in the trunk and  
in the current branch and that'd be it. Yes, there are some older  
release branches, but there's no reason to lock anything there,  
because nobody should be working on those anymore, because they're  
obsolete.
> CLI cannot handle something like that, I guess (not tried):
> svn lock 'http://example.com/repos/mine/branches/*/doc/whatever.doc'
> end even then we usually have trunc/doc and branches/FOO/doc
No, certainly not with that syntax, but it would be trivial to write  
a script which gets a list of all branches and locks a file in all of  
them, and in the trunk.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Sep 15 12:33:12 2005