分类: LINUX
2010-10-14 21:22:53
首先,要明确两个问题:
1、linux下的CVS软件服务器和客户端都是同一个安装包,并且是命令行下的 2、eclipse已经自带cvs客户端功能,但不提供cvs服务 基本的步骤如下: 1、安装cvs软件 2、配置和测试cvs,包括服务器配置、用户配置 3、建立仓库(repository) 4、将代码从仓库导入到eclipse 5、用eclipse上传代码到仓库 接下来是详细过程: 1、安装cvs软件 我用的是redhat,可以用rpm -q cvs测试一下是否已经安装cvs 如果显示出类似cvs-1.11.22-7.el5,则说明已经安装了。
2、配置和测试cvs
创建cvs管理员帐户(root用户)(根目录设置为/home/cvs) #useradd -d /home/cvs cvs #passwd cvs
输入密码,确认。
将cvs管理员帐户加入cvs用户组 #usermod -G cvs cvs 配置cvs根目录的读写权限 #chmod 775 /home/cvs 切换到cvs帐户 # su cvs 初始化cvs,即建立cvs仓库 $ cvs -d /home/cvs 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系统用户访问权限. 我用的第一种方法,已经有用户gyan,设置具体方法如下:
切换到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把该用户第二个字段拷贝过来,然后再把这个用户删除。 第三个字段是等效系统用户名,实际上就是为该用户赋予和某个系统用户权限等效的权限。 内容类似下面:
gyan:$1kdfjkdjGDfdfkjdDFD:cvs
中间的字段是从/etc/shadow文件中复制的。
readers是只读用户列表文件,这个文件中的用户对cvs有只读权限,文件内容类似下面 benqiu lily writers是读写用户列表文件,这个文件中的用户对cvs有读写权限,文件内容类似下面 gyan 注意:如果某个用户即在readers文件中又在writers文件中,那么这个用户仅有只读权限,无法写入。 3、建立仓库 在建立之前首先要登录到cvs服务器上 设置环境变量 $export CVSROOT=:pserver:gyan@服务器IP或名:/home/cvs (如果是csh则用setenv命令) $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:gyan@服务器IP或名:/home/cvs填写,单击“NEXT”按钮,进入下一步,选择仓库信息 可以直接输入仓库名(第一个选项),也可以在cvs服务器中选择仓库(第二种方式),我是使用第二种方式,选择了LibSCM仓库,单击“NEXT”进入下一步,确认签出仓库的项目 然后单击“NEXT”,进入下一步,选择项目要存放的目录,可以选择默认存放在工作空间中,也可以手动指定一个位置。然后单击“Finish”即可完成项目的导入。 5、用eclipse提交代码到仓库 要提交经过修改的代码可通过右击修改过的文件或整个项目,在弹出菜单中依次选择“Team”->“Commit”,然后对提交的代码附加注释(可为空),确认即可。 要增加一个新版本的方法是“Team"->"Tag as version"
|
chinaunix网友2010-10-15 17:47:01
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com