软件使用之:CVS服务器配置和使用

lyjinger软件使用之:CVS服务器配置和使用

说明:因为本人使用vi作编辑器并设置了显示行号,以下相关文件内容前面的编号请自行略去。

CVS服务配置:
1、在/etc/xinetd.d目录下创建文件cvspserver,内容如下:
      1 # default: on
      2 # description: The cvs server
      3 service cvspserver
      4 {
      5     disable = no
      6     socket_type = stream
      7     protocol = tcp
      8     wait        = no
      9     user        = root
     10     server      = /usr/bin/cvs
     11     server_args = -f --allow-root=/cvsroot pserver
     12     log_on_success  += USERID
     13     log_on_failure  += USERID
     14 }
2、确认/etc/services文件中有以下两行,没有则手动添加:
  cvspserver 2401/tcp # CVS client/server operations
  cvspserver 2401/udp # CVS client/server operations
3、重启xinetd服务
  server xinetd restart
4、确认CVS服务已开启监听
  netstat -l
如果输出结果有以下这行则CVS启动成功
tcp        0      0 *:cvspserver            *:*                     LISTEN

CVS用户管理:
1、添加用户组cvs,用户cvsroot、cvspub
  groupadd cvs
  useradd cvsroot -g cvs
  useradd cvspub -g cvs
2、将其他用户加入cvs用户组,假设当前系统中已存在一个用户ly
  gpasswd -a ly cvs

CVS数据仓库:
1、创建数据仓库,假设将数据仓库目录设为/cvsroot
  su
  mkdir /cvsroot
  chown cvsroot cvsroot
  chgrp cvs cvsroot
  chmod 770 /cvsroot
  chmod g+s /cvsroot
2、初始化数据仓库
  cvs -d /cvsroot init

CVS访问方式:
一、:ext:方式:假设用户ly访问本地CVS
1、修改~/.bash_profile,增加两行:
     18 export CVS_RSH=/usr/bin/ssh
     19 export CVSROOT=:ext:ly@localhost:/cvsroot
2、使配置生效
  source .bash_profile
3、测试访问
  cvs checkout CVSROOT
根据提示输入密码,成功会在本地生成CVSROOT目录

二、:pserver:方式:假设用户cvspub访问192.168.1.8CVS
1、修改~/.bash_profile,增加一行:
     20 export CVSROOT=:pserver:cvspub@192.168.1.8:/cvsroot
2、使配置生效
  source .bash_profile
3、测试访问
  cvs login
根据提示输入密码
  cvs checkout CVSROOT
成功会在本地生成CVSROOT目录

CVS日常使用:
1、创建新模块,假设将/home/ly/test/hello工程(包括main.c、Makefile)导入CVS
  cd /home/ly/test/cvs_test
  cvs import -m "import hello project." cvs_test lyjinger start
2、获取新模块
我们可以先删除原先的hello工程目录
  cd ..
  rm -rf hello
  cvs checkout cvs_test
3、获取最新修改,假设main.c被其他人修改后提交
  cvs update main.c
4、提交修改,提交自己修改的main.c
  cvs commit -m "your modified message." main.c
5、比较本地拷贝与库中文件,比较main.c
  cvs diff main.c
   比较本地拷贝与库中指定修订版,假设比较main.c与库中main.c的1.1修订版
  cvs diff -r 1.1 main.c
   比较库中不同的修订版,假设比较main.c库中的1.1与1.3修订版
  cvs diff -r 1.1 -r 1.3 main.c
6、显示指定文件所有修订版的日志信息,显示main.c日志
  cvs log main.c
7、显示指定文件状态:本地修改还是库中更新,显示main.c状态
  cvs status main.c
8、解决冲突
当多个开发人员同时修改一个文件时引起冲突,发生冲突后你需要打开有问题的文件,搜索以<<<<<<<开始的行
<<<<<<<
   你的修改
=======
   库中合并的代码
>>>>>>>修订版
判断代码,删除冲突标记,提交文件,解决冲突
9、标记标签,假设将main.c Makefile test标记为发行版1.0
  cvs tag release1-0 main.c Makefile test
以后你可以使用
  cvs checkout -r release1-0 cvs_test
    检出该发行版
查看文件标签
  cvs status -v main.c
10、向模块库中添加新文件,假设添加func.c到工程hello中
  cvs add func.c
  cvs commit
    向模块库中添加新目录,假设添加modules目录到工程hello中
  cd modules
  cvs import -m "add modules to hello project" hello/modules lyjinger start
11、从模块库中删除文件,假设从工程hello中删除func.c
  cvs remove func.c
  cvs commit
    从模块库中删除目录,假设从工程hello中删除目录modules
首先需要删除库中modules目录下所有文件,然后
  cvs update hello
    cvs默认删除空目录
12、模块分支
前面我们已经将hello工程发行为版本1.0,现在开始版本2.0的工作
    升级版本号
  cvs commit -m "update project hello to ver2.0." -r 2.0
此时客户反馈1.0版本有一个bug需要立即修改,我们只好停下2.0的工作,对1.0进行修正
    首先删除本地拷贝
  cvs release -d hello
    在库中创建版本1.0的分支并检出到本地
  cvs rtag -b -r release1-0 release1-0-patch hello
  cvs checkout -r release1-0-patch hello
现在开始在版本1.0分支上工作,修正bug确认无误后,将分支合并
    首先删除本地分支的拷贝
  cvs release -d hello
    将版本1.0的分支合并到版本1.0库中
  cvs checkout -j relase1-0-patch hello
解决冲突后将合并后的文件提交到库
  cvs commit
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值