On 13 Feb 00, at 22:30, Tom Satter wrote:

>Mike,
>
>You are correct.  It is difficult to write in an e-mail the
>way that I would talk in person.  I tend to be much more
>diplomatic in person and I know for a fact that my e-mails
>tend to sound aggressive.  I apologize in advance if I 
>offend you, that is not my intent.
>
OK

>With regard to your statement about logical arguments, take
>two of the issues that are currently being discussed:
>
>1) locking in cvs
>2) cvs add behavior
>
>When Greg (and you) argue against adding or modifying any 
>of the CVS code to support locking your argument invariably
>is that the tool was not designed to be used for locking,
>that this would make the code more complex, and simple is
>better.  This in itself is a rational argument -- no problem.

I would say that the argument is really (as others have pointed out) that, 
the current 'locking' feature that cvs has is broken and worse than useless -- 
it appears to give you some security, but in fact gives you none. Its use will 
inevitably 
lead to developers breaking the locks. If you are lucky CVS will mail the locker to 
say 
that her lock has been broken. But it's still been broken. 
It's only use is to make developer B aware, _after_ he has made his changes and tries 
to commit 
them, that developer A has locked those files.
That awareness can easily be achieved with cvs watch/edit, _before_ developer B makes 
any changes.

And for the specific case that Jerzy, et al are discussing, locks do not help the 
situation.
Visual Basic files, or other non-mergable files are just that -- non-mergable. 
Mark them as such (it happens to be the 'binary' flag but in this case simply tells 
CVS to not 
attempt to merge these files) 

Given the explicit example of VB files...
Without locking
A checks out module VB
A makes changes
B checks out module VB
B makes changes
A commits those changes
B tries to commit, needs update, does so and is told 
        cvs update: non-mergeable file needs merge
B wants his changes but rightly doesn't want to lose A's changes.
He has to somehow resolve the problem _by hand_  before he can commit.

Now with locking...
A checks out module VB
A issues 'cvs -L file1.frm'
A issues 'cvs -l file1.frm'
A makes changes
B checks out module VB
B makes changes
B tries to commit and is told 
        cvs [commit aborted]: Revision 1.1 is already locked by A
B goes to see/emails A 
A says "Sorry, I needed to make sure my changes got in...."
A commits changes
A says "...there I've finished now."
B tries to commit -- needs update
B updates and gets
        cvs update: Updating VB
        U VB/file1.frm
        cvs update: non-mergeable file needs merge
        cvs update: revision 1.2 from repository is now in VB/file1.frm
        cvs update: file from working directory is now in .#file1.from.1.1
        C VB/file1.frm
B wants his changes but rightly doesn't want to lose A's changes.
He has to somehow resolve the problem _by hand_  before he can commit.

I really cannot see how locking in this situation helps!

Let us not forget, that as well as cvs admin being explicitly documented as a bad 
idea, 
unsupported, likely to disappear etc., it is the only command that gives no help, and 
is the only 
command that is hard-wired out of the box to not be usable by the common or garden 
developer,
it is only invokable by members of the cvsadmin group.


>In the 'cvs add' discussion there are really two different
>threads.  One is allowing add to be done with a slightly
>[SNIP]
Greg has answered this.

>In the CVS locking discussion it is interesting because CVS
>already supports locking but in a really brain-dead way.
>Now if we really want to make CVS simpler, lets start
>a thread about REMOVING the current locking system.  Then
>CVS would only be concurrent and the argument would make 
>more logical sense.

Noel Yap has already suggested that locking _should_ be removed 
and then the situation looked at again.

>What I was pointing out about the 'no compromise' position
>that Greg has taken is that in the CVS add discussion, 
>almost everyone has agreed with having code to support the
>new syntax (part one of the paragraph above).  However,
>there has been serious questioning of the value and
>complexity of implementing the code for looking upward
>in the repository for working directories.  

I beg to differ. Greg's 'hardline' "it's my proposal so there!" (sorry Greg!) was 
explicitly
started because someone suggested that it would be _dangerous_ to recurse upwards.

Greg then challenged anyone to prove that it was dangerous.

There then followed the strange example of users' sandboxes being created below a cvs 
managed 
workspace. (I say, "Give 'em enough rope...")

Someone else suggested that symbolic links could be a problem, which Greg countered by 
agreeing
that yes, symbolic links are a problem. They _are_ currently, without his proposal!

Another responded with some non-specific mumble about mounted file systems.

So you see, no-one has yet managed to prove that recursing upwards is dangerous in 
other 
than exceptional circumstances. But then other CVS commands are dangerous in 
exceptional circumstances.


Mike



--
Share what you know. Learn what you don't.

Mike Little <[EMAIL PROTECTED]> 
work: <[EMAIL PROTECTED]>
Web: http://www.ampersoft.co.uk
PGP public key at http://www.ampersoft.co.uk/mike/mike.html

Reply via email to