cvs资料

扫码查看
cvs用法总结(1)--cvs命令格式,标志字符和环境cvs用法总结(1)--cvs命令格式读书笔记,中文名"版本控制之道-使用cvs",英文名"Pragmatic Version Control-Using CVS"。以下内容出自英文版附录,中文内容来自中文实体书,使用范例是个人总结(总结出来,以后万一忘了可以查,呵呵)。一. CVS Command Format/cvs命令格式cvs commandGlobal Options/全局选项-H Displays usage information for command.显示命令用法-Q Cause CVS to be really quiet.使得cvs不输出信息-q Cause CVS to be somewhat quiet.使得cvs较少输出信息-r Make checked-out les read-only.使得签出的文件只读-w Make checked-out les read-write (default).使得签出的文件可读写(默认)-l Turn history logging off.关闭历史纪录-n Do not execute anything that will change the disk.不执行任何会修改磁盘文件的操作-t Show trace of program execution, try with -n.实现程序执行的轨迹(试着和-n一起使用)-v CVS version and copyright.cvs版本和版权说明-b bindir Find RCS programs in bindir. 在"bindir"目录中找到rcs程序-T tmpdir Use tmpdir for temporary les. 将"temdir"目录作为保存临时文件的目录-e editor Use editor for editing log information.使用"edit"来编辑日志信息-d CVSROOT Overrides CVSROOT environment variable as the root of the CVS tree. 取代CVSROOT环境变量作为cvs的根目录-f Do not use the /.cvsrc le. 不使用/.cvstc文件-z # Use compression level # for net trafc. 在网络通信中使用第"#"级压缩-a Authenticate all net trafc.炎症所有网络通信-s VAR=VAL Set CVS user variable.设置CVS用户变量使用范例:   1.察看cvs版权信息       cvs -v   2.察看cvs帮助       cvs -H二. Flag Characters/标记字符 在更新操作期间,CVS将显示一列前面带有标志字符的文件名。下面列出了这些字符代表的意义:A 文件  文件已经从本地添加到CVS,但是还没有存放到仓库中C 文件  当试图更新文件时检测到了一个冲突(也就是说,在本地修改的代码和与在仓库中被修改的代码有冲突)。这个文件在本地的副本中包含冲突记号,而文件原来的版本存放在一个叫做.#文件.version的新文件中M 文件  文件已经在工作区中被修改,需要存回到仓库以使仓库保持更新。P 文件  作用和"U"相同,"P"标志表示服务器使用了一个补丁文件将这个文件更新成最新的。R 文件  文件已经从仓库的工作副本中移走(使用 cvs remove 命令)。当运行cvs commit命令后,这个文件在仓库中的版本才会被移走U 文件  文件的本地副本已经按照仓库中的最新版本更新了。只有当文件在仓库中的版本比本地版本新以及有一个新文件在仓库中而没有在本地区时才会发生。? 文件  文件只存在于工作区中但是仓库中没有这个文件的任何信息。可以使用cvs add 命令来添加这个文件,或者通过修改.cvsignore  文件来让cvs忽略这个文件    对C标记的测试:在两个工作区中同时修改同一个版本的文件number.txt,将其中的一行修改为不同的内容,然后commit提交一个,update另一个显示:cvs updatecvs server: Updating .RCS file: /export/home/cvsroot/test/aoxj/cvstest/number.txt,vretrieving revision 1.6retrieving revision 1.7Merging differences between 1.6 and 1.7 into number.txtrcsmerge: warning: conflicts during mergecvs server: conflicts found in number.txtC number.txt此时使用ls -a可以看到文件.#number.txt.1.6生成. .#number.txt.1.6  ..  CVS  number.txt打开merge后的number.txt文件,内容为115225345=======46>>>>>>> 1.7三. CVS Environment /cvs 环境   环境变量通常和CVS一起使用.   CVSROOT   用来指定仓库的默认位置以及访问方法,设置了这个变量就无需使用CVS的全局-d选项.   在windows中,可以增加CVSROOT到系统环境变量中,或者使用命令行: c:\> set CVSROOT=:pserver:username@hostname:/cvsrootpath    在unix/linux中,对于bash,zsh,需要添加到profile文件中export CVSROOT=:pserver:username@hostname:/cvsrootpathcvs用法总结(2)--cvs命令import,add,release,remove一. login登录 cvs login 会提示要求输入密码二. logout 退出 cvs logout三. import 将源文件导入到cvs仓库 cvs import [-d] [-k subst] [-I ign] [-m msg] [-b branch] [-W spec] repository vendor-tag release-tags...  -d   将文件的修改时间作为导入时间 -k sub  设置默认的RCS关键字替换模式 -I ign  忽略文件(使用!重置) -b bra  分支的标识 -m msg  日志信息 -W spec  包装指定行 使用范例 (1)将一个新项目导入到仓库  1.假设项目在本地文件夹testproject下,进入该目录,清除里面所有不需要提交的内容  2.执行命令   cvs import -m"test log message" -ko test/aoxj/ testprojuect test  其中test/aoxj/指在仓库中的位置,testprojuect是项目名称,test发布标识  3.可以用check 从仓库中获取这个新导入的项目   cvs co test/aoxj/testproject (2)创建项目的另一个方法:建立一个空仓库在添加一个新项目  1.迁出仓库的顶级目录   cvs co -l -d tmp .  2.在这个迁出的工作区中建立新项目,使用add命令加入仓库   makedir newproject   cvs add newproject  3.测试删除这个签出的工作区   cvs release -d tmp  4.再次签出项目   cvs co newproject四. add 添加新文件/目录 cvs add [-k rcs-kflag] [-m message] files... -k 使用rcs-kflag添加具有指定kflag的文件,通过使用"-kb"添加二进制文件到仓库中 -m 使用message来创建日志使用范例: (1)添加二进制文件 cvs add -kb -m"add a binary file" test.doc 如果不使用-kb,则默认是按照text格式提交,会破坏文件。 (2)忘记-kb提交二进制文件的补救  如果是进行了add但是还没有commit,则可以使用实现方法: 1.忘了加-kb  cvs add test.doc 2.本地改名  mv test.doc temp.doc 3.删除文件  cvs remove test.doc 4.取回原来的文件  mv temp.doc test.doc 5.再次add并commit  cvs add -kb test.doc  cvs commit test.doc  如果是commit之后才发现错误,最安全的方式是修改CVS仓库中的标记,然后再更新cvs仓库. 1.错误的commit了文件  cvs add test.doc  cvs commit test.doc 2.重置cvs仓库的标记  cvs admin -kb test.doc 3.重置本地工作区的标志  cvs update -A test.doc 4.从正确的文件覆盖本地工作区的文件   cp /**/test.doc test.doc 5.提交到仓库  cvs commit -m "new binary file" test.doc五.admin 管理仓库 cvs admin rcsoptions ... -k 使用"rcs-kflag"来改变与一个文件相关的标记,常用于将文件的状态修改为二进制(使用"-kb")六. release 删除本地模块 cvs release [-d] directories ... -d 删除给定目录的本地副本 使用范例:   cvs release -d test/aoxj/testproject  这样会将本地工作区中的test/aoxj/testproject目录删除,但是不影响cvs仓库中文件七. remove 从cvs仓库中删除条目 cvs remove [-flR] [files ...] -f 在移除之前删除文件 -l 只有本目录,不包括子目录 -R 操作应用于子目录 使用范例: (1) 从cvs仓库中删除文件  cvs remove a.txt  会报错,表示该文件在本地工作区中依然存在,需要先删除本地工作区中的文件   cvs server: file `a.txt' still in working directory   cvs server: 1 file exists; remove it first  可以手工用rm命令删除,也可以使用-f参数在提交cvs remove命令前先删除文件   cvs remove -f a.txt  会出现提示   cvs server: use 'cvs commit' to remove this file permanently  表示本地副本已经被删除,要求用commit命令提交到仓库,如果这个时候使用update  明亮,会看到   R a.txt  注意a.txt前面的R.最后在用commit提交删除仓库中的文件:   cvs commit a.txt (2)从cvs仓库中删除文件夹  cvs remove -fR foldername  可以删除foldername文件夹下的文件,但是无法删除目录////////////////////1.安装CVS软件包.2.groupadd cvs3.useradd -g cvs cvsroot4.chmod 777 -R /home/cvsroot5.cd /etc6.vi profile新增以下二行:CVSROOT=/home/cvsroot export CVSROOTCVSEDIT=vi export CVSEDIT7.查看/etc/services文件中cvspserver 所在行的注释状态(有则把注释去掉)8.进入 /etc /xinetd.d, vi cvspserver该文件不存在,内容如下:service cvspserver{disable = nosocket_type =streamwait =nouser =rootenv =HOME=server =/usr/bin/cvsserver_args =--allow-root=/home/cvsroot pserverlog_on_failure +=USERID}9.vi /etc/xinetd.conf 内容如下,每次开机自动启动服务:service cvspserver{port = 2401socket_type = streamwait = nouser = rootserver = /usr/bin/cvsserver_args = -f --allow-root=/home/cvsroot pserverbind = 168.168.1.110}重新登录 换cvsroot用户10./etc/init.d/xinetd restart11.cvs init(初始化:CVS版本库的初始化)12.cvs -d :pserver:cvsroot@192.168.1.110:/home/cvsroot login(用户登录)没有任何提示信息就成功。13.首先要导入库,假设项目名称为LinuxISQuote.步骤:1、进入LinuxISQuote.2、一个项目的首次导入cvs import LinuxISQuote lch V_0_0_1此时到$CVSROOT目录下,可以看到多了一个LinuxISQuote的目录。
11-04 15:36
查看更多