Go to the previous, next section.
A number of enhancements are possible:
Modified request could be speeded up by sending diffs rather
than entire files. The client would need some way to keep the version
of the file which was originally checked out, which would double client
disk space requirements or require coordination with editors (e.g. maybe
it could use emacs numbered backups). This would also allow local
operation of cvs diff without arguments.
cvs diff and large parts of cvs update and
cvs ci to be local. The local copy could be made consistent with
the master copy at night (but if the master copy has been updated since
the latest nightly re-sync, then it would read what it needs to from the
master).
cvs update is highly sub-optimal if
there are many modified files. One possible alternative would be to
have the client send a first request without the contents of every
modified file, then have the server tell it what files it needs. Note
the server needs to do the what-needs-to-be-updated check twice (or
more, if changes in the repository mean it has to ask the client for
more files), because it can't keep locks open while waiting for the
network. Perhaps this whole thing is irrelevant if client-side
repositories are implemented, and the rcsmerge is done by the client.
Go to the previous, next section.