[cvsnt] Lock server connection in server mode
tge at blue-elephant-systems.com
Fri Dec 1 13:15:56 GMT 2006
Quoting Arthur Barrett <arthur.barrett at march-hare.com>:
> You are probably better off discussing this on the cvs-dev list. You'll
Good point ... I'll give that a try. But I think, this still might be
interesting from a user perspective.
> need to send the actual protocol trace and also either a cvslock trace
> or a cvsnt server trace. See the info on "cvslock -test" and
> "ServerTraceFile" here:
> Note: AFAICT just because a certain sequence of server commands is
> possible in the protocol does not mean that it should ever be sent in
> that sequence. Modern best practice is to call out to the CVS or CVSNT
> client executable (even from a Java program) - not to send commands
> directly to the server. This is what all the best clients do, including
> TortoiseCVS, WinCVS and Oracle Jdeveloper.
To be honest, I cannot see that this is "modern" nor "best practice". If I want
to talk to you on the phone, I don't hang up after every sentence either. Or
actually, you are suggesting to throw away the phone and get a new one every
time ... :-)
Optimal were a well-defined CVS-API to use from Apps. This actually does not
exist as part of CVS (afaik), but for example the Netbeans CVS client is
exactly such a thing (a set of Java classes, which I can use to perform CVS
operations). Admittedly they don't enforce either method, so I have now
implemented in my prog both (with reconnect if using CVSNT, no reconnect with
regular CVS - more efficient).
I'd be curious what other people think ...
Finally, I also think, it's probably not difficult to fix nor does it cause
compatibility problems: just release all locks but keep the lock server
connection intact if in server mode, until the client session ends. But this is
really something for the developers list.
> -----Original Message-----
> From: cvsnt-bounces at cvsnt.org [mailto:cvsnt-bounces at cvsnt.org] On Behalf
> Of Thomas Gentsch
> Sent: Wednesday, 29 November 2006 11:21 PM
> To: cvsnt at cvsnt.org
> Subject: [cvsnt] Lock server connection in server mode
> Hello *,
> after spending quite some I finally found a problem with CVSNT which I'd
> like to post for discussion.
> Within a java program using the netbeans CVS client, I try to check in a
> set of objects. Almost consistently the check-in runs through nicely,
> the commit too. Subsequently I want to attach a tag to all the files,
> which is preceded by a status operation. The first status call fails:
> Error communicating with lock server (send): No such file or directory
> So, the actual sequence is something like:
> Happens with :pserver:... as well as with :local:... on a Windows XP
> Prof. SP2 with CVSNT 2.5.03.2382. It does not happen on any Unix with a
> "normal" CVS.
> Initially I thought this is some bug, but finally I found in the
> sources, that the commit command just calls Lock_Cleanup() or so, which
> will close the lock server connection. If I do a reconnect after the
> commit(), the status() calls run through! The same happens after the
> last status() before the first tag(). Again a reconnect helps. Finally
> the same thing after every tag().
> This might be OK if used from the command line, but not in server mode.
> What do you think?
> cvsnt mailing list
> cvsnt at cvsnt.org http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt
More information about the cvsnt