《Eclipse中CVS的使用》由会员分享,可在线阅读,更多相关《Eclipse中CVS的使用(33页珍藏版)》请在金锄头文库上搜索。
1、MyEclipse中中CVS的使用的使用 一、问题的提出一、问题的提出一、问题的提出一、问题的提出 software engineer software engineer1 1、我要更改源文件,但不知道哪个是最新的;、我要更改源文件,但不知道哪个是最新的; 我不了解文件的修改过程,尤其是最后修改了哪几行以及为什么修改;我不了解文件的修改过程,尤其是最后修改了哪几行以及为什么修改;2 2、MakeMake时,经常用错文件的版本;时,经常用错文件的版本;3 3、多人修改一个文件,有些人的结果被冲掉了;、多人修改一个文件,有些人的结果被冲掉了;4 4、 程序误删了,只能重写;程序误删了,只能重写;5
2、 5、花了一周时间,终于查出了一个错误,但发现有个同事上周前已经、花了一周时间,终于查出了一个错误,但发现有个同事上周前已经修改了同样的错误,但我却不知道,造成浪费;修改了同样的错误,但我却不知道,造成浪费; 6 6、整个项目由若干部分组成,项目初期各人做各人的一部分,、整个项目由若干部分组成,项目初期各人做各人的一部分,后期合并联调,但是周期很长,达数周甚至数月,开销非常大;后期合并联调,但是周期很长,达数周甚至数月,开销非常大; 7 7、调试过程中,经常出现、调试过程中,经常出现“ “扯皮扯皮” ”,搞不清楚哪的问题,搞不清楚哪的问题 版本太多,有的太旧,查看不方便版本太多,有的太旧,查看
3、不方便 8 8、估计项目成员的工作进度和工作成果比较困难、估计项目成员的工作进度和工作成果比较困难 9 9、交付给用户的产品、交付给用户的产品“ “缺斤少两缺斤少两” ”,用户在安装时才发现问题,用户在安装时才发现问题 用户使用时发现的问题不能够及时得到解决。用户使用时发现的问题不能够及时得到解决。 1010、不能过确切了解项目的进度,总是得到、不能过确切了解项目的进度,总是得到“ “差不多差不多”“ ”“大概大概” ”之类的模糊回答,公司的运作过程无法控制,之类的模糊回答,公司的运作过程无法控制,“ “不按我说的做不按我说的做” ” 一、问题的提出一、问题的提出一、问题的提出一、问题的提出
4、software engineer software engineerAll those problems need to be resolved!Cvs Svn 二、二、CVS简介简介 CVS是Concurrent Versions System(并发版本系统)的简称。它是一个开放源代码的项目,是当前最流行的版本控制系统,目前绝大部分Open Source项目都使用它来做版本管理。如果你还习惯用微软的VSS来进行Java项目的版本管理,那么用上Eclipse后,建议还是转为使用CVS。 CVS采用客户机/服务器体系,代码、文档的各种版本都存储在服务器端,开发者首先从服务器上获得一份复制到本机
5、,然后在此基础上进行开发。开发者可随时将新代码提交给服务器,当然也可以通过更新操作获得最新的代码,保持与其他开发者的一致。 Eclipse本身内置了CVS客户端,只要再建立一个CVS服务器就可以使用这一功能强大的版本控制系统。CVS的功能虽强大,但一般项目通常只用到其20%的功能,所以只要了解最常用的操作就可以了,本章将以面向实际项目使用需要的方式来介绍CVS。三、三、CVS服务器端的安装与配置服务器端的安装与配置 CVS起源于UNIX/Linux平台,CVS服务器在Windows平台的版本:cvsnt。首先到cvsnt主页去下载它,下载方法参阅配书光盘的视频演示。目前的最新版本是,它可以安装
6、在Windows NT/2000/XP/2003上。1、运行安装程序,不必更改它的任何默认设置,连续单击next按钮,即可完成安装。cvsnt默认安装在“C:Program Filescvsnt”目录下。2、通过Windows选择“开始所有程序CVSNT”选项,打开cvsnt的设置面板“Service control panel”,如图所示1,上面两个服务已经启动。3、创建库(Repository)单击图1中的Repositories configuration选项卡,再单击Add按钮,创建一个存放版本文件的目录“d:/cvsfile”,如图2所示,单击OK按钮后在弹出的两个窗口中回答“是”。
7、注意:建议在Name栏不要用自动生成的“/cvsfile”,而是改写成绝对路径“d:/cvsfile”, 图1图2图图3三、三、CVS服务器端的安装与配置服务器端的安装与配置 4、转到、转到“Compatibility options”选项卡,将选项卡,将3个选项都选上,如图个选项都选上,如图4所示。所示。注意:注意:这一步非常重要,否则无法在下正常使用,如果你使用版,则此步无法在下正常使用,如果你使用版,则此步设置可跳过。设置可跳过。图图4 5、CVS客户端要连接上服务器,还需要在服务器端分配一个用户名,客户端要连接上服务器,还需要在服务器端分配一个用户名,并且用户名要求必须是并且用户名要求
8、必须是Windows的登录用户。的登录用户。 三、三、CVS服务器端的安装与配置服务器端的安装与配置 注意:注意:安装好CVSNT之后,也可以通过之后,也可以通过“控制面板控制面板”里的里的“用户账号用户账号”来创建一个新用户。来创建一个新用户。6、其他、其他如果要将如果要将CVS的文件移植到另一台电脑上,或者原的文件移植到另一台电脑上,或者原cvs服务器所在电服务器所在电脑重装了操作系统,这时就要涉及移植或恢复脑重装了操作系统,这时就要涉及移植或恢复CVS。以本书配书光盘。以本书配书光盘的的cvsfile目录(后面章节的目录(后面章节的CVS备份)为例,读者只需要将此目录复备份)为例,读者只
9、需要将此目录复制到本地电脑(复制后也可以改名),然后按照图制到本地电脑(复制后也可以改名),然后按照图2的操作将它注册的操作将它注册一下即可。由此可知,备份一下即可。由此可知,备份CVS上的文件只需将上的文件只需将cvsfile目录复制一份目录复制一份就行了,非常简单。就行了,非常简单。如果读者对权限要求比较严格,那么就需要设置如果读者对权限要求比较严格,那么就需要设置CVS用户的权限,用户的权限,CVS的权限是和操作系统权限相关的(用户都是操作系统的用户),的权限是和操作系统权限相关的(用户都是操作系统的用户),也就是说读者需要设置也就是说读者需要设置Windows文件目录的权限。文件目录的
10、权限。四、四、CVS客户端的安装与配置客户端的安装与配置 1、打开MyEclipse中的“window-show View-other 如图5所示和图6。图图5四、四、CVS客户端的安装与配置客户端的安装与配置 图图6图图7图图8注意:注意: (1) 资源库路径用资源库路径用CVS服务器上的绝对路径,即服务器上的绝对路径,即图图2中中Name文本框的值。文本框的值。 (2)密码是上面用)密码是上面用cvs命令行设置的命令行设置的123456。但。但如果是通过如果是通过“控制面板控制面板”里的里的“用户账号用户账号”来创建用来创建用户的,那么此密码即为该用户的户的,那么此密码即为该用户的Wind
11、ows登录密码。登录密码。2、将项目提交到CVS服务器上(1)转到)转到MyEclipse的的“资源资源”透视图。右键单击项目名透视图。右键单击项目名myproject,然后选择,然后选择“teamshow project”选项,如图选项,如图9所示。在弹出的所示。在弹出的“共享项目共享项目”窗口中,接受默认设置,直窗口中,接受默认设置,直接单击接单击“下一步下一步”按钮。按钮。四、四、CVS客户端的安装与配置客户端的安装与配置 四、四、CVS客户端的安装与配置客户端的安装与配置 图 9 五、CVS的使用 如果新同事加入项目开发团队,这时他就需要将CVS服务器上的项目导入到自己的MyEclip
12、se中。为了方便模拟,再安装一个MyEclipse,只要安装目录不同,两个Eclipse同时运行也不会有冲突。将CVS服务器上的项目导入到Eclipse中的步骤如下:(1)在主菜单选择“fileimport”选项,弹出如图10所示的窗口。1、CVS服务器上的项目导入到Eclipse中 五、CVS的使用图 10 五、CVS的使用(2)选择“从CVS检出项目”,单击“下一步”按钮。弹出一个设定资源库的位置窗口,接受默认选项,直接单击“下一步”按钮,弹出如图11所示的窗口。图 11 五、CVS的使用(3)在模块名称文本框输入)在模块名称文本框输入myproject,单击,单击“下一步下一步”按按钮,
13、弹出如图钮,弹出如图12所示的窗口。所示的窗口。myproject这个名称不是项目名这个名称不是项目名称,而是项目共享到称,而是项目共享到CVS上时所取的模块名(模块名的设置参上时所取的模块名(模块名的设置参见图见图7),只不过通常将),只不过通常将CVS模块名取成和项目名相同。模块名取成和项目名相同。(4)在项目名称文本框输入)在项目名称文本框输入myproject(可任意取名)。(可任意取名)。MyEclipse会以此名称生成一个项目,并将会以此名称生成一个项目,并将CVS的文件导出到此项的文件导出到此项目下。在该窗口中直接单击目下。在该窗口中直接单击“完成完成”按钮,按钮,CVS服务器上
14、的最新文服务器上的最新文件开始导入到本机中。件开始导入到本机中。图图12 五、CVS的使用 2、文件提交与更新的方法(1)将修改的文件提交到将修改的文件提交到CVS在在indexjsp中增加一条输出语句中增加一条输出语句“out.println(第一次修改第一次修改);”,然后保存。,然后保存。右键单击窗口右侧右键单击窗口右侧“导航器导航器”视图中的文件,在弹出菜单中选择视图中的文件,在弹出菜单中选择“小组小组提交提交”选项,如图选项,如图13所示。所示。图图13 五、CVS的使用(2)从)从CVS更新文件到本机更新文件到本机删除掉的语句删除掉的语句“out.println(”第一次修改第一次
15、修改“);”然后保存然后保存这时要将这时要将CVS服务器上的最新代码更新到本地,有以下两种方法:服务器上的最新代码更新到本地,有以下两种方法:右键单击文件,在弹出的菜单中选择“replace withlatest for HEAD的最新内容”选项图14。右键单击文件,在弹出的菜单中选择“team与资源库同步”选项,在弹出的同步界面,如图15,16所示,单击“将当前更改从右边复制到左边”按钮,然后保存。图14 图15图163 、 解决文件提交的冲突 五、CVS的使用在多人项目开发中,由于同时修改一个文件,一时就会产生提交冲突,本小节就来说明一下如何解决这种冲突。在上面检出项目时,已经另外安装了一
16、个MyEclipse,相当于多了一个开发者,原来的称为Giles,新加入的叫Tom。Giles和Tom电脑上的的版本都是。这时Giles在文件中增加一条语句“System.out.println(Giles第1次修改);”,同样Tom也在文件中作了类似修改,如图17所示。 五、CVS的使用图图17Giles先提交文件,这时版本变成了,由于先提交文件,这时版本变成了,由于Giles是第一个提交的,是第一个提交的,所以他不会遇到代码冲突。所以他不会遇到代码冲突。Tom编程速度慢一些,所示后提交,这编程速度慢一些,所示后提交,这时就会和时就会和Giles先提交上去的代码产生冲突。因为如果用先提交上去
17、的代码产生冲突。因为如果用Tom的代的代码更新码更新CVS,则,则Giles的修改就会被冲洗掉,所以的修改就会被冲洗掉,所以MyEclipse此时就此时就会报文件冲突,不允许直接提交。那么会报文件冲突,不允许直接提交。那么Tom该如何提交自己的修改该如何提交自己的修改呢?呢? 五、CVS的使用决办法如下:决办法如下:右键单击右键单击“HelloWorld.javateamupdate”选项,如图选项,如图18所示。所示。 图18此时的版本已经变成了,更新后的冲突也已标记出来。这时就可以此时的版本已经变成了,更新后的冲突也已标记出来。这时就可以根据代码中的标记来合并修改,修改完毕后再提交到根据代
18、码中的标记来合并修改,修改完毕后再提交到CVS,此时版,此时版本变成了,如图本变成了,如图19所示。所示。图19 五、CVS的使用4 、如何忽略掉不想提交的文件、如何忽略掉不想提交的文件 五、CVS的使用 假设当提交一个项目时出现如图20所示的情况,图中的bin目录包含的是编译后的class文件,没有必要将它提交到CVS上。我们可以右键单击它,然后在弹出的快捷菜单中选择“Team-add to .cvsignore”,这样bin目录就被忽略掉,不会提交到CVS上。图20 5 、在、在CVS上上为软件打包一个版本件打包一个版本在开在开发告一段落告一段落时,就要打包一个版本,打包版本的操作步,就要
19、打包一个版本,打包版本的操作步骤如下:如下:(1)右)右键单击“项目名目名”,在,在弹出的快捷菜出的快捷菜单中中选择“Teamtag as Version”选项。此。此时如果有修改没有提交到如果有修改没有提交到CVS上,上,则会会弹出下如出下如图21所示的一个提示框,如果所示的一个提示框,如果单击“确定确定”按按钮,则未提交的修改就不会包含在本次打包的未提交的修改就不会包含在本次打包的这一版本中。一版本中。(2)如)如图22所示,在窗口中所示,在窗口中为此版本起一个名称此版本起一个名称为V001。由于此。由于此名称可能已存在于名称可能已存在于CVS中,所以下面中,所以下面还有一个复有一个复选框
20、,如果框,如果选上上该复复选框,在打包框,在打包时就会替就会替换掉同名的老版本;如果没有掉同名的老版本;如果没有选上,上,则在在有同名版本有同名版本时,就会,就会弹出出错误提示框。提示框。 图21 确确认未提交的更改未提交的更改 图22 给版本起名版本起名 五、CVS的使用6 实践建议实践建议 五、CVS的使用(1)把项目做成模块目录()把项目做成模块目录(Java包),各人负责自己的模块和目录,包),各人负责自己的模块和目录,这样就不容易造成重复修改。这样就不容易造成重复修改。(2)做到每日提交,即每天下班之前都要将各自完成的代码提交到)做到每日提交,即每天下班之前都要将各自完成的代码提交到
21、CVS上,并且提交的代码要求是完整可运行的代码,关键是要保证其上,并且提交的代码要求是完整可运行的代码,关键是要保证其他人更新你的代码之后不会引起错误。他人更新你的代码之后不会引起错误。(3)对于共用型的文件,要做到即时修改,即时提交。)对于共用型的文件,要做到即时修改,即时提交。(4)任何人在修改文件之前,先更新)任何人在修改文件之前,先更新CVS的最新版到本机。的最新版到本机。(5)项目团队的)项目团队的Eclipse等开发环境(安装目录、软件版本等)要保等开发环境(安装目录、软件版本等)要保持一致。这样就可以将整个项目共享到持一致。这样就可以将整个项目共享到CVS,团队成员也可以从,团队
22、成员也可以从CVS上更新整个项目,而不必担心因为一些项目配置文件不同导致更新项上更新整个项目,而不必担心因为一些项目配置文件不同导致更新项目后出错。另外,当新团队成员加入时,只要导入目后出错。另外,当新团队成员加入时,只要导入CVS上的整个项目,上的整个项目,无须再配置项目,就可以即刻开发运行。无须再配置项目,就可以即刻开发运行。本讲小本讲小 结结 本章介绍本章介绍CVS的从服务器安装到客户端具体的从服务器安装到客户端具体操作的整条开发线的使用流程,其中文件提交与操作的整条开发线的使用流程,其中文件提交与更新是项目开发中使用最频繁的操作,本章详细更新是项目开发中使用最频繁的操作,本章详细讲述了具体的操作流程,并给出了由项目开发经讲述了具体的操作流程,并给出了由项目开发经验中总结出来的实践建议。通过本章的学习,读验中总结出来的实践建议。通过本章的学习,读者已可以轻松地在项目中使用者已可以轻松地在项目中使用CVS来进行版本管理。来进行版本管理。谢谢 谢谢!