The client can specify a symbolic tag, a date, or both and CVSup will extract the appropriate versions from the server's CVS repository. Checked-out versions do not need to be stored on the server, since CVSup can extract any version directly from the CVS repository. If the client has an existing checked-out tree, CVSup will apply the appropriate edits to update the tree or transform it into the requested version. Only the differences between the existing version and the desired version are sent across the network. To update non-RCS files, CVSup uses the highly efficient rsync algorithm, developed by Andrew Tridgell and Paul Mackerras.
Information is transferred at the full available speed of the network in both directions at once.
Network latency and server response delays are rendered practically irrelevant. For efficiency, all processing is built into the CVSup package itself. Neither the client nor the server execute any other programs. Modula-3 integrates threads, exceptions, and garbage collection, providing an ideal vehicle for this sort of application. Without Modula-3, CVSup would almost certainly not exist today.