首页 linux下cvs的安装和使用

linux下cvs的安装和使用

举报
开通vip

linux下cvs的安装和使用 Linux CVS 安装配置使用 安装cvs所需要的支持包 xinetd 一、安装 1、验证是否已安装xinetd和cvs #rpm -q xinetd #rpm -q cvs 如果能显示出类似这样的版本信息,证明已安装 #xinetd-xx.xx. #cvs-xx.xx. 一般安装在/usr/bin/cvs,如果未安装, http://download.fedora.redhat.com/pub/fedora...

linux下cvs的安装和使用
Linux CVS 安装配置使用 安装cvs所需要的支持包 xinetd 一、安装 1、验证是否已安装xinetd和cvs #rpm -q xinetd #rpm -q cvs 如果能显示出类似这样的版本信息,证明已安装 #xinetd-xx.xx. #cvs-xx.xx. 一般安装在/usr/bin/cvs,如果未安装, http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/ 下载一个最新的rpm安装即可;安装命令如:rmp -ivh cvs-1.11.2-10.i386.rpm 也可以用YUM命令在线安装 2、创建CVS用户组与用户 root用户下执行以下命令: #groupadd cvs #adduser cvsroot #passwd cvsroot #输入cvsroot用户密码 3、创建CVSROOT root用户下执行: #mkdir /var/cvsroot 此处可改为你想要的cvsroot路径 #chown cvsroot.cvs /var/cvsroot 更改cvsroot权限 4、初始化CVS 需要在cvsroot用户下执行 #su - cvsroot #cvs -d /var/cvsroot init 此处对应上面创建的cvsroot路径 5、修改环境变量 编辑/etc/profile或者/home下相应用户的.profile文件 此处已修改/etc/profile为例: #exit 退回到root用户,只有root用户才有权限修改/etc/profile #vi /etc/profile 编辑/etc/profile文件 在末尾加上以下两句: CVSROOT=/var/cvsroot export CVSROOT 更新环境变量: 执行#. /etc/profile 注意点的后面有空格 此时系统已经认识$CVSROOT这样的环境变量 注意:若提示无权限,则需要改变profile的权限后,再执行上一步骤; #chmod 777 /etc/profile 6、启动cvs服务器: 6.1、修改 cvs配置文件 #vi /var/cvs/CVSROOT/config 把 "#SystemAuth=no" 换成 "SystemAuth=no" 在/etc/xinetd.d/目录下创建文件cvspserver,内容如下: # default: on # description: The cvs server sessions service cvspserver { disable = no socket_type = stream wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/var/cvsroot pserver log_on_failure += USERID only_from = 192.168.0.0/24 } 其中only_from是用来限制访问的,可以根据实际情况不要或者修改。 注意:如果路径/var/cvsroot与上面创建的不一致,或者为/var/cvsroot/,将出现no such repository问题。 修改该文件权限: # chmod 644 cvspserver 然后重新启动xinetd: # /etc/rc.d/init.d/xinetd restart 然后察看cvs服务器是否已经运行: # netstat -lnp|grep 2401 tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN xxxxxx/xinetd 或 #netstat -l |grep cvspserver tcp 0 0 *:cvspserver *:* LISTEN 则说明cvs服务器已经运行。 二、使用管理 在 cvs 管理员用户(在我这里是 cvsroot 用户)的家目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,我们可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:   passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:   {cvs 用户名}:[加密的口令]:[等效系统用户名] readers:有 cvs 读权限的用户列表文件。就是一个一维列表。在这个文件中的用户对 cvs只有读权限。 writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。 1、创建可以登陆cvs服务的用户及密码,需要创建文件passwd vi /var/cvsroot/CVSROOT/passwd 文件内容如下: jiaojj:xxxxx:cvsroot chenxu:xxxxx:cvsroot 此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限 注意:cvs用户和服务器用户是可以不一样的 ※事实上必须创建jiaojj这样的系统用户 2、xxxxxx为密码,由以下文件生成: vi /var/cvsroot/passwdgen.pl 文件内容: #!/usr/bin/perl srand (time()); my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))"; my $salt = sprintf ("%c%c", eval $randletter, eval $randletter); my $plaintext = shift; my $crypttext = crypt ($plaintext, $salt); print "${crypttext}\n"; 3、修改passwdgen.pl为可执行 #chmod 111 passwdgen.pl 如果需要密码为:some,则敲入: passwdgen.pl "some" 回车即可得到加密密码,用其替换passwd文件中的xxxxxx 4、编辑 writers 文件,加入下面几行: jiaojj chenxu 5、使用 cvs -d :pserver:用户名@localhost:/var/cvsroot login 敲入命令回车后提示输入用户名的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了 =============CVS 使用简介================== CVS是RCS的前端工具,它是用于多用户并行开发的版本控制工具,它的最大特点 是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。通过使用 CVS生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块 (module),在修改时将相应的模块检出到工作目录中(working directory)生 成对应的目录,所有的修改都在工作目录中完成,修改完成后再提交到仓库中生 成新的版本号,并加以保存。 1. CVS初始化 (1) 创建CVSROOT根目录 编辑有关的环境变量,加入CVSROOT的定义(比如在 /etc/bashrc 文件中加入下 面两行): CVSROOT=/var/cvsroot export CVSROOT 然后在相应位置开始创建CVSROOT $cd /var $mkdir cvsroot $cvs –d /var/cvsroot init 这时就会产生/var/cvsroot/CVSROOT 目录,这下面放着有关CVS的配置文 件。同时/var/cvsroot/也作为文件仓库存放所有的文件。 (2) 创建开发项目 如果从头开始一个新的项目,就需要创建一个单独的目录,并把所有要使用的文 件做一个有效的组织。而如果在开始使用源文件的目录之前就有了,则只需进入 该目录就行了。 $cd /work/tang $ls cvstest . .. c/ $cd cvstest 然后,就可以输入源文件目录: $cvs import –m “Create Source Dir” cvstest/c tang cvstest 这样会生成 $CVSROOT/cvstest/c 目录。 其中 -m 用来指定注释信息,如果后面 在命令行不指定注释信息,则会启动缺省编辑器(vi)要求输入注释信息。 tan g, cvstest分别标识了厂商和发行标识。 注意,使用import命令会把当前目录下的所有文件和目录(包括子目录)引入到 文件仓库中指定模块(目录)下。 2. 命令简介 ------------- (1) 检出源文件 cvs checkout [-r rev][-D date][-d dir][-j merg1] [-j merg2] modules -r 检出指定版本的模块 -D 检出指定日期的模块 -d 检出指定目录而不是模块 -j 合并当前版本和指定版本 使用下面的命令会检出刚才生成的模块,并在当前目录下生成与文件仓库中完全 一样的目录结构: $cvs checkout cvstest/c 对于目录结构比较复杂的模块可以在 $CVSROOT/CVSROOT/modules中加以指定: 1) $cvs checkout CVSROOT/modules 2) 在modules文件中加入下面一行: SOURCE cvstest/c 3) 然后执行: $cvs commit –m “Add SOURCE” 以后就可以使用下面的命令在当前路径下生成 cvstest/c 目录 $cvs checkout SOURCE 在当前路径下生成的这个目录就被称为工作目录,对源文件的所有修改都应该在 这个目录下完成,而绝对不允许去改动在 文件仓库中$CVSROOT 目录下的文件。 (2) 删除、增加、重命名文件和目录 cvs add [-k kflags][-m message] files... -k 指定以后该文件的缺省检出目录 -m 对文件的描述 上述命令会加入一个新的文件到文件仓库里,但直到使用了提交命令它才会真正 更新文件仓库。 cvs remove [options] files 上述命令会从文件仓库中删除文件,但也要到提交之后才有作用。 例1:增加文件 $cvs checkout SOURCE $cd cvstest/c $touch test.c $cvs add test.c $cvs commit –m “add test.c” 例2:删除文件 $cvs checkout SOURCE $cd cvstest/c $rm test.c $cvs remove test.c 使用 –f 选项能上面两步合做一步。 $cvs remove –f test.c 如果在提交之前想恢复刚才删除的文件,可以如下: $cvs add test.c 如果只执行了第一步删除(rm),则可以用下面的方法恢复: $cvs update test.c 对于重命名的文件,可以先删除再添加。 对于目录的修改(重命名),可能需要修改cvs 管理文件,一般应该遵循以下步 骤: 1) 确认所有有关的修改都已经提交; 2) 进入文件仓库中要修改的模块目录,对相应的目录进行修改(重命名或删除) $cd $CVSROOT/modules $mv old_dir new_dir 3) 如果有必要,修改管理文件,比如modules 文件 如果要删除目录,则应该先对目录中每个文件都进行了删除(包括使用cvs remo ve )处理之后再执行上面的第2步。 (3) 提交源文件 cvs commit [-Rl][-m mesg] files -R 连子目录一起提交 -l 只提交本地目录(不提交子目录) -m 注释信息 在检出源文件之后,在工作目录中对源文件进行的所有修改都必须在提交之后才 能对文件仓库中的源文件起作用,并且新的文件才能够被分配一个新的版本号。 (4) 释放工作目录 cvs release –d SOURCE 这个命令会删除工作目录 cvstest/c (建议在提交了修改的模块后执行这一步), 它比使用 rm –rf cvstest 要好。 3. 多用户开发 --------------- 在多用户的情况下,如果不同用户修改的是同一个文件的不同部分,则使用下面 的命令就能进行版本合并(把检出的文件与当前的最新版本合并): $cvs update (1) 冲突解决 在有多个用户对同一个文件进行修改时,如果修改了其中的相同部分,而修改后 的内容如果有不同的话,出现冲突是不可避免的。如果在CVS 文件仓库中有一个 文件 test.c ,它的版本是 1.4, 用户A 先检出该文件进行修改,而稍后有用户 B 检出该文件进行修改,并提前提交成 1.5, 而在用户A再提交时就会出现冲突 (如果文件内容不同的话),这时CVS会提示需要手工解决。 文件仓库中的版本1.4: #include main() { int i; for(i = 0; i main() { int i; for(i = 0; i main() { int i; for(i = 0; i main() { int i; >>>>>> 1.5 printf("Count: %d\n", i); >>>>>> 1.5 } (2) 文件版本管理 cvs log [-lR][-r rev][-d date][-w login][files…] -l 不处理子目录 -R 对子目录做同样处理 -r 指定版本号 -d 指定时间 -w 指定登录名 使用上面的命令可以参看当前模块或指定文件的所有历史版本信息。 cvs annotate [-lR][-r rev|-D date] files -l 不处理子目录 -R 对子目录做同样处理 -r 指定版本号 使用上面的命令可以参看指定文件(检出之后)的所有修改信息。 例:$cvs annotate cvstest/c/test.c 输出: 版本 修改人 修改时间 源代码 1.1 (tang 18-Jan-00): #include 1.1 (tang 18-Jan-00): #include 1.1 (tang 18-Jan-00): 1.1 (tang 18-Jan-00): main() 1.1 (tang 18-Jan-00): { 1.1 (tang 18-Jan-00): int i = 0 ; 1.1 (tang 18-Jan-00): 1.1 (tang 18-Jan-00): for(i = 0; i Tags: cvs Tips: 最好先把selinux关闭,在图形界面下把home , cvsroot ,CVSROOT 的属性重新设置成owner:cvsroot ,group:cvs,还有修改/home/cvsroot/CVSROOT/config这个文件的第二行SystemAuth=no这样最顺利了
本文档为【linux下cvs的安装和使用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_198752
暂无简介~
格式:doc
大小:48KB
软件:Word
页数:13
分类:互联网
上传时间:2013-11-13
浏览量:38