cvs 常用命令

 CVS命令

export CVSROOT=:pserver:username@192.168.1.100:/var/cvsroot
cvs login CVSROOT
 
cvs checkout module_name //check out module
cvs update module_name //更新整个module
cvs update [-r 1.1] module_name/filename  //更新某一版本的文件
cvs commit -m "no message" filename //提交文件
cvs remove filename1 filename2  //删除文件,删除完后需要再运行提交命令
cvs add filename
cvs passwd -a -r username
cvs -d :pserver:username@192.168.1.66:/cvsroot login
                  
命令               描述
admin              执行对源代码库的多种管理功能
checkout           用来自源代码的文件创建(或更新)工作目录
diff               显示工作目录和源代码库之间的区别或源代码库中不同版本的差别
export             创建源代码文件的一个拷贝,但是不更新源代码
history            显示了对源代码库中文件或目录所执行的CVS命令的历史信息
rdiff              创建一个补丁文件,包含了源代码库中两个版本的文件之间的差别
release            取消一次cvs checkout操作以及对工作目录所做的任何改动
status             显示源代码库中文件的当前状态

CVS选项和参数
选项/参数              描述
-d cvsroot             使用cvsroot而不是$CVSROOT作为源代码库的根目录
-e editor              使用editor编辑日志信息
-f                    不使用~/.cvsrc文件
-H                    显示cvs用法信息
-l                    关闭历史日志
-n                    不执行任何修改磁盘的命令
-q                    取消一些CVS输出
-Q                    取消大多数CVS输出
-r                    让检出的文件只读(默认情况为可读写)
-s var=val            设置CVS用户变量var的值为val
-T tmpdir             使用tmpdir目录保存临时文件
-v                    CVS版本和版权

详解
一台可以安装你的工作目录的机器上运行  cvs,它被称为客户机( client),然后告诉它你将连到一台安装有仓库的机器,它被称为服务器( server)。通常,使用远程仓库除了仓库名称格式不同,其它方面与本地机没什么区别:
 [: method:][[ user][: password]@] hostname[:[ port]]/path/to/repository
如:
CVSROOT=:pserver:zsun@192.168.2.4:/cvsroot/projects
不推荐直接采用密码的形式,而用
cvs login 命令来代替。
pserver含义:
为了通过口令验证服务器远程在仓库上运行 cvs命令,需要指定 pserver 协议。
下面两种方法同等
 cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj
     CVSROOT=:pserver:bach@faun.example.org:2401/usr/local/cvsroot
     cvs checkout someproj

          
          
CVS的命令格式是: 
cvs [cvs的选项] cvs-command [command 选项] 
如: 
cvs commit 
cvs -d /usr/local/cvsroot init 
cvs update 

cvs -H command (列出命令command的使用方法) 
运行CVS不需要特殊的权限, 只是在多人时需要设定大家都有读写权.(见后) 
注意:使用CVS管理源代码,对于代码的获得,更新,应通过CVS命令来完成. 
在服务器端:

下面从一个项目开始. 

一,开始项目 
用CVS来管理原代码,首先要创建一个/"仓库/"(repository),/"仓库/"简单来说是 
一个目录结构,它包括乐要管理的原代码和用于管理原代码的各种管理文件. 
使用CVS命令init: 
先设置环境变量CVSROOT,指向仓库的绝对路径,然后调用CVS的init命令 
bash$ CVSROOT=/usr/local/cvsroot;export CVSROOT 
bash$ cvs init 
bash$ ls -l $CVSROOT 

也可以用CVS参数-d path来覆盖$CVSROOT的值 
bash$ cvs -d /usr/local/cvsroot init 
许多CVS的命令允许用这种方式指定cvs的根目录. 
二,添加文件,目录到仓库 
我们要将需要管理的文件加入仓库,并命名 
CVS命令import (此命令应只用一次, 以后用cvs add) 
例如, 将当前目录下的src/*加入: 
bash$ cvs import -m /"init implement/" myproject myvtag mtrtag 
-m 指定log message 
myproject : 仓库名 
myvtag: vendor tag 
myrtag: release tag 

三,设置权限 
源码管理员应对仓库下的文件和目录设置恰当的许可权限来控制访问. 
所有的RCS文件(以,v结尾)是只读方式,仓库中的目录应当对使用者有写权,以便允许 
其更改. 


仓库设好后,就可以利用CVS的命令来管理.(包括对项目,对源代码) 
一般的常用的命令: 
cvs checkout 
从仓库中得到某版本的代码.在本地产生一个copy 
cvs update 
从仓库中更新本地的代码 
cvs commit 
将本地修改后的代码提交仓库,并产生新版本. 
cvs add 
添加新的文件到仓库,在cvs commit命令后生效. 
一般的流程是 
cvs checkout or cvs update 
用你喜欢的编辑器修改本地copy 
cvs commit 
提交修改.
详细介绍
 
CVS checkout 命令 

从仓库提取指定的文件到当前目录,并建立同样的结构,并创建CVS目录 
例 
bash$ cvs checkout project 
bash$ cvs checkout project/src/main 
为使用便利,我们可以对一个目录建一个缩写,方法是修改$CVSROOT/CVSROOT/下的 
modules文件.(当然是用cvs 命令完成) 
cvs checkout CVSROOT/modules 
cd CVSROOT 
vi modules 
我们在文件尾加上 
src project/src 
print project/src/print 
cvs commit 
以后我们就可以用cvs checkout print来代替 
cvs checkout project/src/print 

cvs checkout命令缺省是得到最新版本.我们也可以得到某一个老版本 
cvs checkout -r 1.1 print 
将print的1.1版的代码取出. 
cvs checkout的详细用法见cvs -H checkout的输出. 

CVS commit 命令 
在对文件的修改完成后,用cvs commit提交到仓库. 
cvs commit -m /"Update by xxxxx/" project 
cvs commit -m /"Update main.c/" main.c 
提交完成后,当前的版本号会更新,如原来为1.1,现为1.2. 这两个版本都在 
仓库的主干(maintrunk)上. 
-m选项可以记录有关提交的注释.如果没有指定-m选项,在环境变量CVSEDITOR 
中指定的编辑器被调用(vi是缺省的),提示键入文本,修改记录注释. 




CVS update 

CVS允许多人同时对一个文件进行修改. 
假设泥正在修改文件的一部分,现想合并更新自己的本地拷贝(checkout)和 
另一个人所做的修改(已经放在仓库里),可用cvs update 
cvs update 

CVS tag , CVS rtag 

创建分支可以使用户对一些文件进行修改而不会影响主干(当commit时). 
创建分支首先为拟修改的某些文件创建一个标签(tag),标签是赋于一个文件或一组文件的符号.在源代码的生命周期里,组成一组模块的文件被赋于相同的标签. 

创建标签:在工作目录里执行cvs tag 
例: 为src创建标签: 
cvs checkout src 
cvs tag release-1-0 
标签创建后, 就可以为其创建一个分支: 
cvs rtag -b -r release-1-0 release-1-0-path print 
-b :创建分支 
-r release-1-0 :指定存在的标签 
releas-1-0-patch:分支 
print: 模块名 

合并 
使用cvs update -j 选项可以将分支上的改变与本地文件拷贝合并. 
cvs update -j release-1-0 print.c 

cvs release 
对源文件作必要修改后, 可以用cvs release 删除本地工作拷贝 
并通知其他开发者这个模块不再使用. 
cvs release -d print 
-d : 删除 
print: 目录 

冲突 
由于CVS允许多人同时修改同一文件,冲突是不可避免的.例如当两人 
同时修改同一文件的同一行时. 
这时,如用cvs update 更新,CVS检测到冲突的存在,它会将冲突的代码 
用/"<<<<<<<<<<<<<<</", /">>>>>>>>>>>>>>>/"标识.这时需手工处理这段代码.与引起 
冲突的开发者协商,并对文件修改后即可用cvs commit提交. 
CVS history 命令
cvs history 能够查看以自己的用户名登录在服务器上的目录。
声明:
此文章,“详解”部分来源于  “Fighting” 博客,请务必保留此出处http://fangfang0717.blog.51cto.com/236466/48727
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值