[cvsnt] Lock server connection in server mode

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


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,
  tge

> 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 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?
>
> Regards,
>   tge
> _______________________________________________
> cvsnt mailing list
> cvsnt at cvsnt.org http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt
>


More information about the cvsnt mailing list