[
  Prescript
  This is a bit long an email, but explains pretty much what I think
  is the right way at the moment.
]

>  From: Larry Jones [mailto:[EMAIL PROTECTED]]
>  Guus Leeuw writes:
>  > 
>  > Found sofar a good place to get the server's
>  > $CVSROOT/CVSROOT/cvsignore: start_server() in client.c right after
>  > we do connect_to_?server().
>  
>  I'm not sure that's safe -- I suspect that it's better to do it in
>  ign_setup() right where it processes CVSROOT/cvsignore in the local
>  case.  Although the current CVS client never does more than 

Fair. Possible as well, but what strikes here is:
How does the client ask for the server's CVSROOT/cvsignore file?
If new clients should work with old servers, they can't ask, because
the old server would bail out: Unknown Question or some such. It will
behave weird at least.
What if the case is: New server with old client? 
Problem: the client has to explicitly ask for it, otherwise the
send of the CVSROOT/ignore will f*ck up the first answer the old client
expects: Valid-requests x y etc.

That means:
in the context of OC NS, the server cannot send anything. Why?
Because it was not asked.
in the context of NC OS, the the client cannot ask, because the server
doesn't understand, and sends an error.

OC OS is all fair: doesn't work anyways :)
NC NS is all fair: NC asks, NS sends.

Well..., if NC asks, and OS sends an error: we can deal with that. No
problem that the server didn't understand us.... we're apparently
newer in the NC than the OS is.

NC OS is all fair: we can deal with errors internally.

OC NS: No problem, the new server doesn't work on any (.)cvsignore
file anymore, so it only sends if asked. Since it is not asked, all
is well.

Recapture:
OC OS is all fair: doesn't work anyways :)
OC NS is all fair: the server would not send cvsignore.
NC NS is all fair: NC asks, NS sends.
NC OS is all fair: we can deal with errors internally.

Okay. (OC = Old Client, NS = New Server, etc.). So we can release it
anytime we want.

Now, the ign_setup will then be completely ignored by the server.
The code will not exist anymore in this detail (for the server).
The server merely pipes the data in CVSROOT/cvsignore when asked
for it.

Okay, after three days of investigation, I now know pretty much how I
could do it then.

Let's start coding :) (Ooops.... I'll first have to figure out how
c/s talk to eachother... Lemme see, whether I can *grin*)

>  > One thing though, Larry (*grin*), and that is:
>  > what about :ext: protocols where to user is supposed to have a
>  > login on the server?
>  > If the server now only sends the Repository's cvsignore, whatever
>  > the user has setup in his $HOME/.cvsignore will not be send to the
>  > client. Is this wanted? Or should I rather go and make only changes
>  > for GSSAPI, KERBEROS, and PSERVER?
>  
>  I think ~/.cvsignore on the server should be ignored.

Cool, fits the above, I guess :)

Lemme start rolling :)

Cya,
Guus


Reply via email to