1.安装与配置CVSNT
CVS 全称Concurrent Versions System,主要用于管理在开发过程中生成的源代码、文档等资料,记录他们的更新历史,使开发团队各成员可以更好的协作。CVS版本控制系统采用C/S架构,目前CVS server可以支持Linux、windows 2000/xp/2003以及部分unix(如sun的solaris等),CVS client在linux、windows、unix上也有对应的版本。在eclipse中已经内置了CVS client,eclipse的文档中建议将CVS server安装在linux、unix等操作系统上,不过在我们大多数人的开发中,采用CVS server for windows仍然是最方便快捷的方式,尽管它可能比不上linux、unix版本那样的稳定。
1、eclipse http://blog.csdn.net/javamxj/archive/2004/10/11/131952.aspx
目前最新的版本是3.0.1
2、cvs server for windows http://www.cvsnt.com/cvspro/
目前最新的版本是2.0.51d
(注:关于如何在CVSNT 2.0.58d 版本下使用,请参考 http://blog.csdn.net/javamxj/archive/2005/01/05/240726.aspx )
1、安装与配置cvsnt;
2、在eclipse中配置CVS client;
3、创建一个CVS实例;
4、实践CVS;
第一节 安装与配置cvsnt
cvsnt直接运行安装程序安装即可。
配置cvs server
1.开始 ->所有程序 ->cvsnt ->Service control panel,出现以下窗口:
(安装后的默认状态是运行的)
2.切换倒repositories页,点击“add”按钮建立一个项目库,在这里我新建一个D:/cvsfile目录,
点击OK,出现一个对话框,点击"是"即可.
3. 切换到Advanced页:选择如下:
一定要将use local users for pserver和pretend to be a unix CVS server这两项选上,前者是要求cvs server采用windows 的本地用户进行权限认证,如果采用域用户权限,那么所有的客户端开发机都必须要登录到windows域才能连接到CVS server,比较麻烦。后者是强制CVS server for windows模拟成unix CVS server,只有这样eclipse才能连接上CVS server for windows!
4.确定后,重新启动CVS service和CVS lock service.
2.在eclipse中配置CVS client
第二节: 在eclipse中配置CVS client
1.运行eclipse 3后,执行下图所示的功能:
或者,打开"窗口"菜单->"打开透视图"->"CVS资源库研究"
2.在"CVS资源库"窗口的空白处点击右键,选择"新建"->"资源库位置"
3.如下配置CVS资源库
主机: cvs服务器的主机名,也可以是它的IP地址,因为是本地主机,所以填写"localhost"
资源库路径: 在上一节"安装与配置cvsnt " 步骤2 "切换倒repositories页" 中的"Name"项;
在此例中就是"/cvsfile"。
认证: "控制面板"->"用户帐户":选择已经存在的一个用户名和密码填入,或者创建一个新帐户。
还可以右击“我的电脑”图标->管理->计算机管理->本地用户和组->用户:创建一个新的帐户,如此例中我创建了一个“mmm”的帐户。
连接类型: 选择“pserver” 是最常用的一直cvs远程访问方式 。
4. 完成配置后窗口如下。
3.创建一个CVS实例
第三节 创建一个CVS实例
1.先在eclipse中建立一个新的项目“Hello World CVS”,再建立一个“HelloWorld”类(注1),只是简单地输出语句“HelloWorld!”。
2.把这个本地项目共享到repository里。打开java视图,选中这个项目,右键单击->小组->共享项目:
出现提示窗口后,一路按“Next”即可,直至出现一个“添加至CVS版本控制”的对话框,点击“详细信息”,可以选择哪些资源添加到CVS资源库,这里没有选择“/Hello World CVS/bin”目录(它不是源代码),然后点击“是”即可。
出现“提交”对话框,可以选择不添加注释,但最好是添加。(注意,每次提交时都会提示输入注释,这是很重要的,作为每一个状态的说明和提示。)
完成后commit所有本地文件,然后你就可以使用CVS强大的版本控制功能了。
注1: 刚开始时我给“HelloWorld”类用的包名是“cvs.test”,后来共享项目时出现问题,出在cvs这个词上,把包名改为“cvs1.test”后问题消失。原因是采用“cvs.test”包名时会就建立一个cvs目录,而共享到repository时也要创建cvs目录,结果目录名冲突。所以包名不要单独用cvs这个词。
4.实践CVS
第四节 实践CVS
1.提交代码
现在我增加一条输出语句“System.out.println("第一次修改");”,保存。然后选择右侧“包资源管理器”中的HelloWorld.java文件,右击,在弹出菜单中选择“小组”->“提交”。
提交后显示如下,可以看到CVS资源库已经反映了提交后文件的改变。
2.从资源库中更新代码
现在删除掉HelloWorld.java中的语句“System.out.println("第一次修改");”,然后保存。
右击HelloWorld.java文件->替换为->HEAD的最新内容,可以看到删除的代码已经还原了。
或者,右击HelloWorld.java文件->小组->与资源库同步,选择“将当前更改从右边复制到左边”按钮,然后保存,可以看到删除的代码已经还原了。
3. 检出项目
右击“CVS资源库”中的“Hello World CVS”,选择“检出为...”
在“检出为”对话框中的“项目名称”填写:Hello World CVS Two,然后点击“完成”。
这样,这两个项目同时指向一个CVS资源库,就有可能产生提交冲突。
4. 发生冲突
简化一下,把Hello World CVS项目称为项目1,Hello World CVS Two称为项目2。注意当前这两个项目的版本都是1.2。
在项目1中增加一条语句“System.out.println("项目1第1次修改");” ;项目2增加一条
语句“ System.out.println("项目2第1次修改");”。
提交项目1的HelloWorld.java,注意这时版本变成了1.3。
这时提交项目2的HelloWorld.java,会出现一个错误,如下:
这是由于资源库中已经具有该资源的更新修订版(版本是1.3),而版本是1.2的项目2提交时就会发生冲突。
5. 解决冲突
将项目2的工作与资源库资源合并,并以本地方式保存合并的资源。然后可以选择提交此合并的结果。
右击项目2的HelloWorld.java 1.2->小组->更新... 如图:
注意此时项目2的版本已经变成了1.3,更新后冲突已标记出来,你可以选择是否合并资源库中的内容,然后保存,这时项目2可以提交合并后的版本了。提交后,项目2和资源库的版本变成了1.4。
5. 补充一些资料
前段时间我曾写了一篇文章,介绍如何“利用CVSNT在Eclipse 3.0中使用版本控制系统CVS”,链接是
注意
|
安装之后,通过 控制面板 ->管理工具 ->服务: 可以看到 CVSNT 和 CVSNT Locking Service 这两个服务的状态都是"已启动",启动类型都是"自动"。如果你不想每次开机都运行这两个程序,可以把启动类型改为“手动”(可以节约点内存)。若要再启动它们,可以通过CVSNT程序组中的“Service control panel”来控制它们。
|
![](http://image.360doc.com/DownloadImg/73/4459_22.jpg)
![](http://image.360doc.com/DownloadImg/73/4459_23.jpg)
![](http://image.360doc.com/DownloadImg/73/4459_24.jpg)
![](http://image.360doc.com/DownloadImg/73/4459_25.jpg)
Anonymous CVS Access
This project's SourceForge.net CVS repository can be checked out through anonymous (pserver) CVS with the following instruction set. The module you wish to check out must be specified as the modulename . When prompted for a password for anonymous , simply press the Enter key. To determine the names of the modules created by this project, you may examine their CVS repository via the provided web-based CVS repository viewer .
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/easystruts co modulename
![](http://image.360doc.com/DownloadImg/73/4459_26.jpg)
![](http://image.360doc.com/DownloadImg/73/4459_27.jpg)