CVS版本控制软件的安装配置与使用
(一) 软件的安装: 1. 软件的获取:CVS是一个典型的Server/Client端软件,有UNIX版本的CVS 、Linux版本的CVS,和WINDOWS版本的CVS,在下载的软件包中已经包含了Server端和Client端,但是我们在工作中一般都是使用Windows操作系统,所以我们可以再下载一个Windows下CVS的Client端软件WinCVS。在以下网站可以获取新版本的CVS。 http://www.cvshome.org 2. 软件的版本:现在UNIX下新版本的CVS是cvs-1.11.5.tar.gz Windows下CVS的Client端软件WinCVS版本是WinCVS1.3 3. 软件的安装: 把你下载的cvs-1.11.5.tar.gz放到UNIX机器的一个临时目录中,进入到此目录, #gunzip cvs-1.11.5.tar.gz 后得到cvs-1.11.5.tar文件,然后再执行: #tar xvf cvs-1.11.5.tar 后得到一个cvs-1.11.5的目录,进入到此目录后执行下列命令: #./configure #make #make install 如果在安装过程中没有错误信息出现,则说明你的安装是成功的,如果有报错请根据错误信息检查你的系统设置 Windows下CVS的Client端软件WinCVS1.3的安装执行源文件中的setup.exe文件,指定安装的目录即可。 (二) CVS软件服务器端的配置: 1. 我们安装好此软件后可以开始配置服务器了,一般CVS是用Pserver的认证方式作为一种服务在UNIX上运行的, 所以先要确定系统里/etc/services文件有CVS服务的入口,(如果没有)在这个文件中添加一下两行: cvspserver 2401/tcp # cvs client/server operations cvspserver 2401/udp # cvs client/server operations 2. CVS服务是通过xinetd来启动的,我们需要修改/etc/xinetd.conf文件,添加一条语句 cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver 由于在较新的Linux发行版(如:RedHat7.x)中都是用新xinetd代替了inetd,要用xinetd来启动cvs服务你需要进入到/etc/xinetd.d/目录,然后编辑一个文本文件(名字随意),这里是用cvspserver作为文件名,这个文件的内容如下所示: service cvspserver { socket_type = stream wait = no user = root env = HOME= server = /usr/bin/cvs server_args = --allow-root=/cvsroot pserver } 注意上面的service后面的名称一定要和你在/etc/service文件中的cvs服务名称一样,在server_args行我们指定了cvs使用pserver认证方式,可能容易产生误解的是env = HOME=这一行,添加这一行的目的是为了解决在执行一些cvs操作时产生的读取/root/.cvsignore文件的错误,上面env那行的意思是在运行cvs服务的时候将环境变量HOME置空,这样虽然执行cvs的用户是root,但是由于没有了HOME这个环境变量,所以cvs不会在去读取/root/.cvsignore文件了。
建议使用后者启动cvspserver,不要修改 /etc/xinetd.conf文件,避免冲突
3. 使cvs正常运行还需要对需要使用cvs的用户进行设置,首先建立一个用户组cvs,然后添加一个用户cvsroot,修改用户cvsroot的组属性,使它成为cvs组成员。 groupadd cvs useradd -g cvs cvsroot 4. 创建一个目录,名称和路径任意。此目录为存放用户源代码的目录,也是用户的数据仓库(repository),是CVS的核心部位,所以应该建立在一个空间足够大的分区比较好。在此我在根目录下建立了一个cvsroot的目录 #mkdir cvsroot 5. 创建一个环境变量CVSROOT,此环境变量指明了数据仓库所在的位置,如果你使用的shell是csh,那么你应该编辑你的根目录下的.cshrc文件在里面添加以下这条语句 setenv CVSROOT /cvsroot 注意,路径要和你作为数据仓库的目录路径一样。 6. 初始化你的数据仓库的目录 cvs -d /home/cvsroot init 7. 初始化/cvsroot目录后会自动在/cvsroot目录下产生一个CVSROOT的目录,此目录下的文件是CVS的配置文件,对几个主要文件的说明如下: checkoutlist 支持CVSROOT目录的其它管理文件,允许为各种CVS命令定置信息 commitinfo 在cvs commit命令执行时,这个文件指定乐文件提交时执行的命令 cvswrappers 定义乐一个包装程序当文件登记或检取时会执行
editinfo 允许你在commit命令启动前在日志信息被记录后执行的脚本 history 跟踪所有影响仓库的命令 loginfo 类似coimmitinfo, 只是在文件提交后执行 modules 允许为一组文件定义一个符号,否则必须为每一个要引用的文件指定cvs仓库的路径名($CVSROOT) nitify 控制从"watch"来的通知."watch"由"cvs watch add"和"cvs edit" 设置 rcsinfo 为commit log回话指定一个模板. taginfo 定义乐在任意"tag"操作后执行的程序. readers 设置有读权限的用户清单 (系统默认没有此文件,必须手工添加) writers 设置有读写权限的用户清单 (系统默认没有此文件,必须手工添加)
到此为止,CVS服务器的配置做完了,你可以使用你的CVS服务器了。你可以测试你的CVS服务器了,在命令行下输入以下指令来登陆CVS服务器,如果没有提示任何信息说明你已经登陆到CVS服务器了 cvs -d :pserver:cvsroot@192.168.7.183:/home/cvsroot login (三) CVS客户端软件WinCVS的配置: 1. 软件说明:虽然您在UNIX上安装的CVS软件即包括了Server端又包括了Client端,但是你在使用时需要记忆那些反烦琐的命令,现在有一个软件WinCVS是运行在Windows下的一个CVS的客户端软件, 2. 软件安装:得到WinCVS的安装程序后执行里面的setup.exe文件,安装到你指定的目录下。 3. 软件的启动:开始-程序-GNU-WinCVS1.3-WinCVS 4. 软件的配置:在Admin菜单下选择Preferences…,弹出的窗口中选“General”页面,具体设置如下所示: Authentication: pserver (认证方式为pserver,这是默认的认证方式) Path: /home/cvsroot (在服务器上数据仓库的路径) Host address: 192.168.7.183 (服务器的IP地址) User name: bjcvs (登陆服务器的用户名) CVSROOT: 设置完成上面的项目后,此项会自动生成,在此不必设置
5. 在“Globals”页面中取消以下两项前面的复选框 Checkout read-only (如果你选择此项则checkout出来的项目都是只读的) Prune(remove) empty directory (不允许目录为空) 6. “WinCVS”页面中,在“HOME (passwords and ~/.cvs*”后面的填入你本机的一个目录, 以后你做的check out、check in操作都在此目录下。“Default viewer used to”设置默认得编辑器 7. “Command Dialogs”页面不用设置。 (四) 选择“Admin”-“login” 后会弹出一个窗口,让你输入密码,这样你可以登陆到CVS服务器了, 如果你看到下面的信息说明你的登陆是成功的: cvs -z9 login Logging in to :pserver:bjcvs@192.168.2.52:2401/home/cvsroot *****CVS exited normally with code 0***** 凡是“CVS exited normally with code 0”后不是0状态的都为登陆失败以后你在CVS上所作的操作不是以0结尾的都是错误操作。 (五) WinCVS的使用: 1. 上传(checkin):
上传一个目录: 窗体中部左边有一个explore页,点击它,选择你准备上传的文件夹;点击菜单栏的creat->>import module from selection,会跳出一个import filter窗体。如果你的文件里有错误,import filter窗体里会有error或warn标志,如果真是这样,你好还是先看一看有何问题。 下一个跳出的窗体是import setting,在select the module name and path on the remote server里面填上一个名称,当你的文件传上服务器后,cvs服务器里会以这个名称建立一个代码库,存放刚才传上来的文件。请记住,下拉框并没有什么神奇的功能,它只能记住你上次填进去的东西。
上传一个文件: 在本地工作目录中添加一个新文件后,要提交到服务端。先选中文件,然后点击工具栏中的“添加按钮(Add selected)”,添加文件后,再在右键菜单中选择提交命令“Commit Selection”即可。 2. 下载(checkout):
下载一个目录: 经过上一步操作,你在服务器里有了源代码,所有的开发者可以开始工作了。当然,开发者需要先下载一个拷贝到本地才能修改它。建立本地工作目录,在自己的硬盘上新建一个目录,例如建立一个名为“work”的目录,表示这是工作目录。选择creat->>checkout module,出现的窗体是checkout setting,在module name and path on the server中填写你在上一步(上传文件)中,上传到服务器中的模块名称。在Local folder to checkout to中填写你
下载一个文件: 如果你不小心删除了你本地工作目录中的一个文件,你可以选中窗体中部左边有一个Modules页,选择你工作的Modules,在右边窗口中右键选中那个你误删除的文件,选择update selection,把CVS服务器上的文件和本地文件进行同步与合并,不用选中出现的任何选项,直接选择“确定”。 3. 锁定: 一般而言,在项目小组中,项目经理会定期公布新的基础版本,要求小组成员都在这个基础版本上进行进一步开发在实际工作中,总会有些成员提前完成工作,他们提交更改后,新版本会比项目经理发布的基础版本的version更高。有时候,某些项目成员会有意无意修改基础版本,并且指定提交到基础版本上,如果允许他们提交修改,大家可能都会在一个错误的基础版本工作,后果是不堪设想的。 锁定文件的操作如下: 菜单栏的admin->>comandline,输入这个命令: cvs admin -l版本号 文件全名 注意,-l和版本号之间没有空格。 如果你锁定成功,会有如下提示: RCS file: /cvs/hrsystem/test/new.txt,v 1.1.2.3 locked done *****CVS exited normally with code 0*****
关于CVS的Client端WinCVS的介绍我只能说这么多了,在网上关于WinCVS的介绍有很多资料,大家可以去查查,
(六) 公司内部CVS帐号说明: 公司内部CVS服务器现在已经搭建起来,在portal机器上(192.168.2.52),并且给每个人添加了一个CVS的用户,用户名是: 您的姓的全称+名字的第一个字母, 例如:张道明的CVS帐号是 zhangdm 密码和用户名相同,也是zhangdm 目前为测试和学习CVS的使用阶段,等大家对CVS的使用比较熟练时再统一由Microsoft Visual SourceSafe转入CVS。 (七) 安装cvs前需要首先安装Python-2.2.1.exe(现在已经有比较新的脚本了)