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 ()'.