Fix mistype.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cvs.rst Fri Oct 14 00:25:36 2011 +0300
@@ -0,0 +1,94 @@
+.. -*- coding: utf-8 -*-
+
+======
+ CVS.
+======
+
+CVS via proxy server.
+=====================
+::
+
+ $ cvs -d:pserver;proxy=$proxyhost;proxyport=$proxyport:$cvsuser@$cvsdomain:/$repo
+
+Create 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 $proj
+
+Status of changes::
+
+ $ cvs status
+
+Compare local changes::
+
+ $ cvs diff -u $path
+
+Creating patch::
+
+ $ cvs diff -N -u -r >$patch
+
+History of changes::
+
+ $ cvs log $file
+
+Remove a file::
+
+ $ rm $file # must first remove it locally
+ $ cvs rm $file # schedules it for removal
+
+Add a file::
+
+ $ cvs add $file
+
+Check in local changes::
+
+ $ cvs ci
+
+Update local sources::
+
+ $ cvs update
+
+Move a file can not be done cleanly at the local level. The best way to do this
+with CVS is to go to the cvsroot repository and move the file or directory
+within the repository there. The cvsroot repository keeps all files in their RCS
+form of filename,v . The next cvs update will manifest the file move.
+
+Tagging sources::
+
+ $ cvs tag $name
+ $ cvs rtag $name
+
+Revert file::
+
+ $ rm $file # remove it from local sources
+ $ cvs update $file # get a new copy from the repository
+