I was looking at this and it doesn't look like the right fix - there's really no 
reason for the
server to know the name of the client executable.  I researched it a little and I see 
two
possibilities which leave the error message intact:

1)  Have the client assume from the "Checked-in" server response on added files and the
"Remove-entry" server response on removed files that this message needs to be printed.
2)  Expand the 'MT' piece of the client/server protocol (already in use to print the 
merge
instructions after an import containing a conflict, possibly unecessarily - see 
solution #1 -
I think the client is already aware that conflicts existed in the import at this 
point) so that
the client knows the message type and which variables to parse for then constructs a 
message on
its end (including the local executable name, of course).

The reason I ask is that it seems to me that the precedent is to go with #2, letting 
the server
be the source of all error messages which aren't due to a client problem (e.g. local 
file
permissions, unavailable network, etc.).  This makes sense to me, from the perspective 
that a
"stupid client" means that much server operation is invisible to the client, a client 
only
needs to know things it can be commanded to do directly, e.g. merge files, set sticky 
tags, or
remove an entry, leading to clients which require upgrades less frequently despite 
possibly
frequent server upgrades.

Anyhow, it was suggested otherwise to me, so I thought I would solicit opinions from 
other CVS
developers before going through with a fix.

Derek

--
Derek Price                      CVS Solutions Architect ( http://CVSHome.org )
mailto:[EMAIL PROTECTED]     OpenAvenue ( http://OpenAvenue.com )
--
Barium: what you do with dead chemists.

"KOIE Hidetaka ($B8q9>1QN4(B)" wrote:

> From: "Derek R. Price" <[EMAIL PROTECTED]>
> Subject: Minor client/server bug
> Date: Wed, 9 Aug 2000 14:29:34 +0900 (JST)
>
>   | When commands are run that instruct you to rerun cvs, the name of the
>   | executable on the server side is printed rather than the name on the
>   | client side:
>   |
>   |     [dprice@empress dbstoretag]$ cvs add dbstoretag.pl
>   |     tcvs server: scheduling file `dbstoretag.pl' for addition
>   |     tcvs server: use 'tcvs commit' to add this file permanently
>   |
>   | Derek
>
> I have made a patch.
> Summary:
> * client.c: (start_server) send "set-program-name".
> * main.c: (get_client_program_name) New function.
> * server.c: (client_program_name) New variable that is program_name at client.
>   (set_program_name) Set to client_program_name.
>   (request requests) Add "set-program-name".
> * Replace some `program_name' with `get_client_program_name ()'.

Reply via email to