Go to the next section.
-
Do not assume any access to the repository other than via this protocol.
It does not depend on NFS, rdist, etc.
-
Providing a reliable transport is outside this protocol. It is expected
that it runs over TCP, UUCP, etc.
-
Security and authentication are handled outside this protocol (but see
below about `cvs kserver').
-
This might be a first step towards adding transactions to CVS (i.e. a
set of operations is either executed atomically or none of them is
executed), improving the locking, or other features. The current server
implementation is a long way from being able to do any of these
things. The protocol, however, is not known to contain any defects
which would preclude them.
-
The server never has to have any CVS locks in place while it is waiting
for communication with the client. This makes things robust in the face
of flaky networks.
-
Data is transferred in large chunks, which is necessary for good
performance. In fact, currently the client uploads all the data
(without waiting for server responses), and then waits for one server
response (which consists of a massive download of all the data). There
may be cases in which it is better to have a richer interraction, but
the need for the server to release all locks whenever it waits for the
client makes it complicated.
Go to the next section.