[Cvsnt] Re: CVSNT error handling and Eclipse/WSAD branch browsing

Schmidt, Martin mschmidt2 at alldata.net
Wed May 22 20:45:09 BST 2002


>> After receiving the above error response from the CVS server, Eclipse
>> further waits for the response:
>>
>> error
>>
>> This is the seemingly redundant piece of output written from
>> do_cvs_command if resulting errs > 0 from command execution.
>> /* We will have printed an error message already.  */
>> 	buf_output0 (buf_to_net, "error  \n");
>> It doesn't seem that this code is reachable for an abort severity error
>> in the 57b source.

>An error causes the application to abort.  It shouldn't be reachable from
>Unix either...  If the error has been printed correctly then everything's
>working OK.

It IS reachable in the Unix version.  CVSNT calls cvs command functions in
the main thread, which is the reverse of how the Unix version calls them
from within the child of the fork.  In an abort situation in CVSNT,
error_exit( ) is called in the main thread following the command failure and
there is no chance of a return from server_main( ) with a status value to
that would be assigned to errs and trigger the printing of "error  \n".  In
the Unix code, however, the cvs command function is called from the child
process while the main process goes on to wait for the child to return a
status (which it DOES return though error_exit( ) is called) that, in an
abort, increments errs and causes "error \n" to be written.

>> Eclipse needs this response, however, before it will retry with the more
>> general request:

>That's undocumented behaviour - It's not something cvsnt needs to fix,
>because it isn't a cvsnt bug.  Printing a redundant 'error' at the end of
>the error is as likely to break other clients as fix anything.

I thought the Unix version of CVS was the defintion of CVS.  Is there some
generic documentation/standard that CVSNT and Unix CVS are both based on?  I
was assuming that existing clients were written to support Unix CVS, and
that if it behaved this way that CVSNT would want to follow suit to be
compatible.  At any rate, CVSNT was obviously not written based on
documentation, it was ported from Unix CVS.

>I can only really 'support' WinCVS and TortoiseCVS, because they are
>all I have access to, and the I get feedback from their development
>teams (they also both call cvs.exe, which makes things a lot simpler).
>I sounds like eclipse isn't designed to work with anything other
>than Unix cvs, which is fine, but it limits what I can to do
>to make it work - adding a sleep is OK, but changing the protocol isn't
>(especially on a release cycle - the devel will probably get a rewrite
>of the protocol layer anyway at some point).

Assuming there is no "standard" for CVS, or at least the remote protocol,
are you saying that CVSNT, WinCVS, and TortoiseCVS are splitting from (or
perhaps not following) Unix CVS and going their own way?  I must have missed
something here.


_______________________________________________
Cvsnt mailing list
Cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt




More information about the cvsnt mailing list