在团队开发的过程当中,代码的版本管理非常重要,有效的代码版本管理可以提高团队开发的效率,还可以进行代码的备份和恢复,是团队开发必备的一个环节。CVS是代码版本管理的一种实现,也是非常流行的一种代码管理框架。Netbeans里面提供了非常强大和友好的CVS支持,但是在使用Netbeans CVS支持前,我们必须首先完成Netbeans CVS服务器的假设及CVS代码库,在这里提供一些经验:
1、Netbeans CVS服务器架设。在这里,我提供的是在windows环境下CVS服务器架设的例子。安装cvsnt 2.5(windows下的CVS服务器),下载地址:http://www.cvsnt.org,为了方便管理,可以安装wincvs(wincvs是一个在windows环境下管理cvs服务器的客户端工具)。
2、安装完毕后,就可以开始配置cvsnt:打开cvsnt control panel,在初始窗口确保CVSNT和CVSNT LOCK两个服务已经打开,点击Repository Configuration,点击add添加一个库,这个库就是我们所需管理的代码库(事先在Netbeans里创建一个工程,并把这个工程的文件夹拷贝到另一个路径中),在location中选择路径,点确定,就可以添加一个库了,在添加库的过程中,CVSNT会自动地生成一些目录和文件,使得这个工程可以在CVS服务器中使用。接下来,在server setting中根据选择使用cvs服务器的用户,点确定,cvsnt就配置成功了。
3、使用wincvs管理Netbeans CVS服务器:在这里,使用的是wincvs 2.1,下载地址:http://sourceforge.net/projects/cvsgui/,安装完wincvs后,点击View->Browse Location->change...,改变wincvs管理员的工作目录,然后点击Remote->Create a repository,添加一个cvs资源库,在CVSROOT右边点击按钮,protocol选择pserver,Repository填入在第2步中添加的那个库的名称,并输入cvs服务器地址,端口(2401),用户名(可以不输入密码),点确定,如果连接成功的话,说明cvs服务器可用。至于更多wincvs管理的方法,在这里就不赘述了,网上有很多这样的文章。
4、配置windows防火墙,在控制面板->windows防火墙->例外中添加端口2401,使2401端口可用。如果还有其他防火墙软件,如瑞星等,也应该配置,使2401端口可用。这一点是很重要的,无论你的CVS服务器配置的多好,只要2401端口没有打开,一样不能访问。
5、在Netbeans中使用CVS支持。假设我们在CVS服务器中有一个路径为/repository的CVS资源库,资源库下有一个HISys的项目。首先,开发团队的每一个成员都必须先签出(也就是下载)这一项目:我使用的是Netbeans 6.0 beta2,点击Versioning - CVS - checkout(5.5里是CVS - 签出):
CVS ROOT指得是CVS资源库的地址,例如::pserver:Administrator@125.216.227.115:2401/repository,其中pserver是CVS服务器使用的协议,Administrator是可以登录到CVS资源库的用户名,125.216.227.115是CVS服务器的IP地址,2401是CVS服务器使用的端口,/repository是资源库的路径(在CVSNT里定义)。可以直接输入CVS Root,也可以点击Edit按钮可视化地输入CVS Root:
点击下一步:
点击Module旁边的Browse按钮,就可以看到CVS资源库里面所有的项目:
选择要签出的项目,点击Finish,就可以把整个项目从CVS服务器中签出到本地了:
在使用CVS进行版本控制时必须注意一点,在我们向CVS服务器提交代码修改前,必须先更新代码,如果提交前不更新代码的话,可能会造成冲突,因为其他的开发人员可能也会对同一个代码文件进行修改并提交到CVS服务器上,这样版本就会发生冲突。当然,即使发生冲突,也不要紧,因为Netbeans的CVS支持里提供了有效的冲突解决方案,用户可以选择正确的版本,也可以将本地代码回滚到本地历史记录或覆盖成CVS服务器上的某一个版本。
右键点击项目,选择CVS,可以看到整个CVS的菜单栏:
Update表示从CVS服务器中的代码更新下来,Commit表示将本地的代码提交到CVS服务器中。当我们对从CVS服务器中签出的代码进行修改后,那一个被修改的的源文件在project视图当中会显示为蓝色,表示这个源代码文件修改过,但未提交:
点击代码的右键 - CVS,仍然可以看到上图所示的菜单栏,我们可以点击Diff比较本地版本和CVS服务器版本:
可以看到,在Diff窗口里,左边是CVS服务器上的版本,右边是本地版本(如果服务器中有多个版本,还可以在上面那个窗口选择),中间绿色的那一带是本地版本与CVS服务器版本的差异,从比较中就可以清楚地看到那些代码,在哪个地方进行了修改。
如果更新或提交资源时发生冲突,可以点击Resolve conflit来解决冲突,在解决一个文件发生冲突时,Netbeans会在源文件中加入CVS上的版本信息,并用<<<<<<<----来标识,这样,源文件就发生了编译错误,采用Resolve conflit来解决冲突时,Netbeans会提示你选择是保留CVS版本,还是本地版本,是将本地版本覆盖CVS服务器上的版本,还是CVS上的版本覆盖本地版本,还是把两个合并起来。
Netbeans的CVS服务器支持还有很多强大的功能,这里只是给出一些基本的介绍,更多的支持,大家在团队开发中会体会的到。
【编辑推荐】