.. -*- coding: utf-8 -*-====== CVS.======.. contents::CVS via proxy server.=====================:: $ cvs -d:pserver;proxy=$proxyhost;proxyport=$proxyport:$cvsuser@$cvsdomain:/$repoCreate CVS Repository.======================:: $ export CVSROOT=/srv/cvsroot $ cvs init $ groupadd cvs $ useradd -m -g cvs -s /bin/sh -c "CVS Repository" cvs $ chown -R cvs $CVSROOT $ chgrp -R cvs $CVSROOT $ chmod -R g+s $CVSROOT $ grep cvs /etc/services && echo OK cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations $ echo '# CVS server cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/usr/local/src/cvsroot pserver' \ >/etc/inetd.conf $ killall -HUP inetd # signal inetd daemon to re-read the config file $ ls $CVSROOT/CVSROOT readers # list of pseudo usernames that can read via cvspserver writers # list of pseudo usernames can write via cvspserver passwd # encrypted passwd string with (htpasswd from apache)CVS workflow.=============Check out sources:: $ cvs co -P $projStatus of changes:: $ cvs statusCompare local changes:: $ cvs diff -u $pathCreating patch:: $ cvs diff -N -u -r >$patchHistory of changes:: $ cvs log $fileRemove a file:: $ rm $file # must first remove it locally $ cvs rm $file # schedules it for removalAdd a file:: $ cvs add $fileCheck in local changes:: $ cvs ciUpdate local sources:: $ cvs updateMove a file can not be done cleanly at the local level. The best way to do thiswith CVS is to go to the cvsroot repository and move the file or directorywithin the repository there. The cvsroot repository keeps all files in their RCSform of filename,v . The next cvs update will manifest the file move.Tagging sources:: $ cvs tag $name $ cvs rtag $nameRevert file:: $ rm $file # remove it from local sources $ cvs update $file # get a new copy from the repository