打通cvs的任督二脉

 以前一直在windows下工作,使用的是vss 2005,现在来到linux工作(其实别的同事还在windows下),为了与他们通信与做项目版本控制,只好使用开源的cvs,以下,我就对我工作中的一些使用cvs的心得做一个总结:

首先安装

sudo apt-get install cvs 
sudo apt-get install cvsd

 

此时会问你repository的位置,默认就好,它会在 /var/lib/cvsd/myrepos 中
创建这个仓库 /myrepos

cd   / var / lib / cvsd 
sudo 
mkdir  myrepos

 

初始化这个仓库/myrepos

sudo cvs -d  / var / lib / cvsd / myrepos init
现在就要开始权限的配置了,设置cvsd的用户认证方式,缺省的是系统级的,但一般来说cvs的用户你(管理员)会自己加上去

 


sudo vi  / var / lib / cvsd / myrepos / CVSROOT / config

 

添加以下几行,并保存
SystemAuth=no
PamAuth=no
LockDir=/tmp/myrepos
注意这里的/tmp/myrepos的真实地址是/var/lib/cvsd/tmp/myrepos,所以你明白这里/的意思
创建LockDir


sudo  mkdir   / var / lib / cvsd / tmp / myrepos

 

添加用户

sudo cvsd-passwd  / var / lib / cvsd / myrepos hujp # 你想建的用户代替 " hujp "

 

cvsd默认端口是2401,你可以改别的端口

sudo vi  / etc / cvsd / cvsd . conf

 

让cvsd运行这个服务,这个用户在安装cvsd时已经建好,并重启

sudo chown cvsd :cvsd   / var / lib / cvsd -R 
sudo 
/ etc / init . d / cvsd restart

 

现在离胜利不远了,配置你的环境变量$CVSROOT吧

sudo vi  / etc / profile
在里面加入

 

CVSROOT = pserver :hujp @你的IP # 2401 : / myrepos 
export CVSROOT

 

然后 ctrl + alt + backspace注销再进入xwindow就ok了
(不注销sudo ./etc/profile也行)

一个项目的首次导入

cvs import -m  " write some comments here "  project_name vendor_tag release_tag

 

执行后:会将所有源文件及目录导入到/var/lib/cvsd/myrepos/CVSROOT/project_name目录下
vender_tag: 开发商标记
release_tag: 版本发布标记

项目导出:将代码从CVS库里导出
cvs checkout project_name
cvs 将创建project_name目录,并将最新版本的源代码导出到相应目录中。这里checkout和Virvual SourceSafe中的check out不是一个概念,相对于Virvual SourceSafe的check out是cvs update, check in是cvs commit。

注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作
将文件同步到最新的版本
cvs update
不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步
cvs update file_name
最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步 后修改”的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用
>>>>>>
content on cvs server
<<<<<<
content in your file
>>>>>>
标记出来,由你确认冲突内容的取舍。
版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。

确认修改写入到CVS库里
cvs commit -m “write some comments here” file_name

注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m “comments”而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。
注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解
不好的注释,很难让其他的开发人员快速的理解:比如: -m “bug fixed” 甚至 -m “”
好的注释,甚至可以用中文: -m “在用户注册过程中加入了Email地址校验”

修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以下命令可以允许你修改某个文件某个版本的注释:

cvs admin -m  1.3 : " write some comments here "  file_name

 

添加文件
创建好新文件后,比如:touch new_file

cvs add new_file

 

注意:对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况比如:

cvs add -kb new_file . gif 
cvs add -kb readme
. doc

 

还有更详细的关于cvs的命令操作可以参考这里http://www.chedong.com/tech/cvs_card.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值