Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138849
  • 博文数量: 29
  • 博客积分: 2017
  • 博客等级: 大尉
  • 技术积分: 272
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-18 11:23
文章分类

全部博文(29)

文章存档

2011年(11)

2010年(18)

我的朋友

分类: C/C++

2011-04-19 20:06:38

首先,要明确两个问题:
1、linux下的CVS软件服务器和客户端都是同一个安装包,并且是命令行下的
2、eclipse已经自带cvs客户端功能,但不提供cvs服务
基本的步骤如下:
1、安装cvs软件
2、配置和测试cvs,包括服务器配置、用户配置
3、建立仓库(repository)
4、将代码从仓库导入到eclipse
5、用eclipse上传代码到仓库
接下来是详细过程:
1、安装cvs软件
我用的是CentOS和Fedora,二者的安装配置方法基本一致,下面均以CentOS为例。
切换到超级用户,执行如下代码:
#yum install cvs
目前最新的版本为cvs-1.11.22-7.el5,按照提示安装即可

2、配置和测试cvs
创建cvs管理员帐户(根目录设置为/home/cvs)
#useradd -d /home/cvs cvs
将cvs管理员帐户加入cvs用户组
#usermod -G cvs cvs
配置cvs根目录的读写权限
#chmod 775 /home/cvs
切换到cvs帐户
# su cvs
初始化cvs,即建立cvs仓库
$ cvs -d /cvsroot init
设置启动cvs服务器启动属性,编辑/etc/xinetd.d/cvs文件如下:
# default: off
# description: The CVS service can record the history of your source \
#              files. CVS stores all the versions of a file in a single \
#              file in a clever way that only stores the differences \
#              between versions.
service cvspserver
{
#       disable                 = yes
disable                 = no
port                    = 2401
socket_type             = stream
protocol                = tcp
wait                    = no
user                    = root
passenv                 = PATH
server                  = /usr/bin/cvs
env                     = HOME=/var/cvs
#       server_args             = -f --allow-root=/var/cvs pserver
server_args             = -f --allow-root=/home/cvs pserver
#       bind                    = 127.0.0.1
only_from               = 192.168.0.0/24
}
其中:
only_from用于设置客户端的IP范围,上述配置只允许192.168.0.0/24这个地址段可以访问CVS;
server_args用于设置pserver访问的cvsroot
重新启动xinetd
#/etc/init.d/xined restart
检查cvs服务器是否已经启动:
#netstat -tlnp|grep 2401
如出现以下提示则说明cvs服务器已经启动。
tcp    0      0 0.0.0.0:2401        0.0.0.0:*           LISTEN      15891/xinetd 
下面要设置用户的访问权限,cvs有两种方式,
一是可直接使用linux系统中的用户访问cvs,此种方式仅需要将要访问cvs的系统用户添加到cvs用户组就可以了;
二是利用cvs自带的用户管理方式设置非linux系统用户访问权限,具体方法如下:
切换到cvs帐户或root帐户,找到cvs根目录下的CVSROOT目录
#cd /home/cvs/CVSROOT
新建passwd、writers和readers三个文件,如果有就不需要新建
#vi passwd
#vi writers
#vi readers
其中,passwd是cvs的用户列表文件,它的文件格式比较类似于/etc/shadow:
{cvs用户名}:[加密的口令]:[等效系统用户名]
第一个字段就是用户名,第二个字段是该用户的加密口令,使用crypt (3)加密
PS:在网上有人介绍一个偷懒的办法计算出crypt (3)加密后的结果:先创建一个系统用户,名字和cvs用户一样,口令就是准备给它的cvs用户口令,创建完之后从/etc/shadow把该用户第二个 字段拷贝过来,然后再把这个用户删除。
第三个字段是等效系统用户名,实际上就是为该用户赋予和某个系统用户权限等效的权限。
readers是只读用户列表文件,这个文件中的用户对cvs有只读权限,文件内容类似下面
benqiu
lily
writers是读写用户列表文件,这个文件中的用户对cvs有读写权限,文件内容类似下面
libodls
baby6
注意:如果某个用户即在readers文件中又在writers文件中,那么这个用户仅有只读权限,无法写入。
3、建立仓库
在建立之前首先要登录到cvs服务器上
设置环境变量
$export CVSROOT=:pserver:libo@服务器IP或名:/home/cvs
$cvs login
输入密码即可登录
然后切换到你的项目所在目录
$cd MyTestProject
建立仓库并上传项目中的所有文件
$cvs import -m "My Test Project" MyTestProject v_1_0_0 start
其中:
import表示向cvs仓库导入项目文件
-m 参数后面的字串是该项目的描述,如果不加 -m 参数,cvs会自动运行一个编辑器要求输入信息
MyTestProject是项目名称(仓库名,在cvs服务器上便存储在以这个名字命名的仓库里)
v_1_0_0可以理解为版本号
start 是每次 import 标识文件的输入标记
如果执行成功就说明仓库建立好了,下面可以测试从仓库获取代码,测试前先把本地的项目删除(删除前记得备份)
$cvs checkout MyTestProject
好了,这样CVS服务器就架设完毕了,cvs还有很多命令,因我需要使用eclipse,所以这些命令就不仔细看了。
4、将代码从仓库导入到eclipse
打开eclipse,在左侧的项目浏览器(Project Explorer)中右击,选择Import,在弹出的import窗口中选择CVS下的Project from CVS,单击“NEXT”按钮

填写CVS服务器信息

其中HOST是cvs服务器的IP地址或名称,Repository path为cvs仓库的路径,user为登录cvs服务器的帐户名,此处的内容可参考$export CVSROOT=:pserver:libo@服务器IP或名:/home/cvs填写,单击“NEXT”按钮,进入下一步,选择仓库信息

可以直接输入仓库名(第一个选项),也可以在cvs服务器中选择仓库(第二种方式),我是使用第二种方式,选择了LibSCM仓库,单击“NEXT”进入 下一步,确认签出仓库的项目

然后单击“NEXT”,进入下一步,选择项目要存放的目录,可以选择默认存放在工作空间中,也可以手动指定一个位置。然后单击“Finish”即可完成项 目的导入。
5、用eclipse提交代码到仓库
要提交经过修改的代码可通过右击修改过的文件或整个项目,在弹出菜单中依次选择“Team”->“Commit”,然后对提交的代码附加注释(可为 空),确认即可。
阅读(2919) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~