This patch has been made against cvs+ipv6-1.11.2_2 as supplied in FreeBSD 4.7 The idea is to support a "cache" repository (the one copied to a local machine by CVSup or CTM) transparently. So that the reads from directory will go from the local cache repository (and won't overstrain the remote server, and will be fast too), while the commits and other changes will go into the remote master repository. A similar thing may be achieved by checking the files out from the local repository and doing any modification command with option -d. But that's troublesome and inconvenient. This patch allows to deine the following configuration: # so far everything is as usual export CVS_RSH=Hssh1 export CVSROOT=user@ncvs.freebsd.org:/home/ncvs # this is new export CVSROOTCACHE=/arch/cacheroot The value specified in CVSROOTCACHE is the local path to the cache repository. All the check-outs, updates, diffs etc. will be obtained from there. All the check-ins, tagging etc. will go into the master repository specified by CVSROOT. Naturally, to see these changes in the cache repository, it needs to be updated by some outside means such as CVSup or CTM. BTW, if there is no chance of conflict between updating the cache directories and check-outs from it, running check-outs with "cvs -r" (read-only repository) will make it faster.