CVS版本控制软件的安装配置与使用
对 http://www.chinaunix.net 作者:zdm 修改后发布
CVS版本控制软件的安装配置与使用
(一) 软件的安装:
1. 软件的获取:CVS是一个典型的Server/Client端软件,有UNIX版本的CVS 、Linux版本的CVS,和WINDOWS版本的CVS,在下载的软件包中已经包含了Server端和Client端,但是我们在工作中一般都是使用Windows操作系统,所以我们可以再下载一个Windows下CVS的Client端软件WinCVS。在以下网站可以获取最新版本的CVS。
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(现在已经有比较新的脚本了)