[cvsnt] Lock server connection in server mode

Thomas Gentsch tge at blue-elephant-systems.com
Fri Dec 1 13:15:56 GMT 2006

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.

Hi Arthur!

Quoting Arthur Barrett <arthur.barrett at march-hare.com>:
> Tge,
> 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:
> http://march-hare.com/cvspro/faq/faq2.asp#2z
> 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.


> Regards,
> Arthur
> -----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:
>  add
>  add
>  ...
>  commit
>  status
>  status
>  ...
>  tag
>  tag
>  ...
> Happens with :pserver:... as well as with :local:... on a Windows XP
> Prof. SP2 with CVSNT 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?
> Regards,
>   tge
> _______________________________________________
> cvsnt mailing list
> cvsnt at cvsnt.org http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt cvsnt downloads at march-hare.com https://www.march-hare.com/cvspro/en.asp#downcvs @CVSNT on Twitter CVSNT on Facebook

More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook