1、CVSCVS=He Wehzhu, , created at 2003-11-5updated at 2003-11-12-=CVSCVScvsCVSCVS/keywordCVSCVSWatchersWinCVSCVSWEB=CVSC/S* -cvslock-modify-unlockmerge conflictCVS* ,*CVS=CVS-CVSCVSROOTCVSROOT=:pserver:userserver#port:/path/to/cvsroot* pservergserver,kserver,ext* userCVS* serverCVSIP*/path/to/cvsrootCV
2、SCVSROOTCVSshellprofile.bash_profile.profilesshCVSROOT=:ext:userserver#port:/path/to/cvsrootCVS_RSH=sshhints:CVSROOTcvs -d :pserver:userserver#port:/path/to/cvsrootCVSROOT cvs/.cvsrccvs -d :pserver:userserver#port:/path/to/cvsrootCVSROOTCVS=$cvslogincvsCVS/.cvspasscvs=cvs global_opts command command
3、_opts command_argsGlobal options cvscommand_opts command?8?cvs -help-commandscvs -H command/cvs -help command hints:/.cvsrcupdate -cdiff -cadd -kbcvs -Qcvs global-option comand comand-option argumentsCVS=CVSa checkout working copyb staus c update ,updated e update f g commit eh b1. cvs checkout modu
4、le_name-module_namemodule_namemodule_namecopymodule_namecheckoutcvs checkout2. cvs update filename-cvsCVS“ “Virvual SourceSafeCVScommitcommitCVSCVSCVSIT WEN latest revision number in the repository-conflict:CVS3. cvs commit -m “write some comments here“ file_name-CVSCVScvs commit-m “comments“cvs com
5、mit file_name cvs-(vi) -m “bug fixed“ -m “: -m “Email“CVScommitCVScvs admin -m 1.3:“write some comments here“ file_name4. -cvsstatus filenameFile:foo.cStatus:Up-to-dateWorkingrevision:1.1.1.1SomeDate?82 ?Repositoryrevision:1.2/home/cvsroot/cvstest/foo.c,vStickyTag:(none)StickyDate:(none)StickyOption
6、s:(none)StatusUp-to-date LocallyModified -NeedingPatch -NeedsMerge -!5. -cvs log file_name=1. -cvs add new_file_namecvs add -kb new_file_namecvs add dir_nameCVSkeyword()Wordcvs add -kbcvs ci -m “write some comments here“ new_file_name2. -cvs remove file_namecvs ci -m “write some comments here“ file_
7、namecvscommit=ci; update=up; checkout=co; remove=rm;3. -cvscvs movecvs renamecvs remove old_file_namecvs add new_file_name4. -checkoutcvs update -d5. (undo)-cvs update -C filenamecheckoutreadonly,“cvs -r“/.cvsrccvs edit filename,readonly,cvs unedit filename,undo,readonly6. -cvs update -j1.20 -j1.15
8、filenames1. 20commit,lockcvs update -r1.15 file.name-r1.15sticky tag-STICK TAGcvs update -A 7 -cvs diff -c filenamecvs diff -c -r1.8 -r 1.5 filename?83?8 -cvs admin -l filescvs admin -u files=cvs20%80%CVSCVS10%=CVS/keyword=CVSkeyword(),$Id$ -lExp$Id$RCS$Log$ : $Author$ $Locker$ : $State$ : Exp, Stab
9、e, Rel.Exp$Date$ : UTC$Revision$ : $RCSfile$ : RCS$Source$ : RCS$Name$ : $Header$ : $ Source $ Revision$Date$Author $State$Locker$Sticky Tag=tag,.1. cvs tag release_name module_name-release_name.2. cvs checkout -r release_name module_name-tag_name3. cvs update -A-tagCVS=CVS1. -cvs tag release_1_0 pr
10、j_dir_name2. -cvs commit -r 22.xCVSrevsion3. -2.x1.x2.xrelease_1_0release_1_0_b2cvs rtag -b -r release_1_0 release_1_0_bugfixes prj_dir_name?84?- rrelease_1_0,-b release_1_0_bugfixescvs424 -release_1_0_bugfixes1.0cvs checkout -r release_1_0_bugfixes2.x5 tag-release_1_0_bugfixes1.0cvs tag release_1_0
11、_bugfixes_p16 -2.02.02.0release_1_0_patch_1cvs update -j release_1_0_bugfixes7 -1.xbug,-release_1_0_patch_2,cvs update -j release_1_0_bugfixes_p1 -j release_1_0_bugfixesrelease_1_0_bugfixes_p1(tag)release_1_0_bugfixes()()65tag,tagtag8 -cvs admin -l r_0_2 r_0_2cvs admin -l 9 -cvs admin -b r_0_2 r_0_2
12、cvs admin -b 10 cvscvs admin -o rev1:rev2 filename rev1rev2cvs admin -o rev1:rev2 filename rev1rev2rev1,rev2rev2,rev1cvs admin -o rev filename revtagtagCVS=1. -cvs,ftp:/ftp.gnu.org/gnu/cvs/2. -gunzip cvs-1.10.6.tar.gztar xvf cvs-1.10.6.tarcd cvs-1.10.6./configuremakemake install3. linux-rpm -ivh cvs
13、-1.10.8-3.i386.rpm4. Repository-?85?groupadd cvs(cvs)useradd cvsrootmkdir /home/cvsrootcvs -d /home/cvsroot initchown -R cvsroot.cvs /home/cvsrootchmod -R ug+rwx /homecvsroot5. /etc/services-cvspserver,cvspserver 2401/tcp # cvs client/server operationscvspserver 2401/udp # cvs client/server operatio
14、ns6. inetd-/etc/inetd.confcvspserver stream tcp nowait root /usr/bin/cvs cvs -allow-root=/home/cvsroot pservertcpwrapperscvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs -allow-root=/usr/local/newrepos pserverxinetd-/etc/xinetd.d/cvspserverservice cvspserverdisable = nosocket_type = str
15、eamwait = nouser = rootenv = HOME=server = /usr/bin/cvsserver_args = -f -allow-root=/home/cvsroot pserverpserver,sshserver-allow-rootRepositoryRepository7. cvs logincvsinetd-allow-root8. prj_dircd prj_dircvs import -m “this is a cvstest project“ prj_dir v_0_0_1 startv_0_0_1start import Watchers=cvsw
16、atch-email,-1. watchCVSROOT/notifyALL mail %s -s “CVS notification“2. emailemail,CVSROOT/usershwz:3. watchcvs watch add filenamecvs watch remove filename4. watchwatch-,cvs editcvscvs edit filenamecvs unedit filename5. watchcvswatchcvs edit filenamecvs watch on6. watchcvs watchers?86?WinCVS=1WinCVSWinCVSCVSWindowsWindowsCVSCVSLinux/UnixWindowsWinCVSCVS2WinCVSWinCVShttp:/ WinCVS-CVSWinCVS3WinCVSaAdmin-Pre