??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品精品,欧美成人在线网站,日韩精品欧美专区http://www.aygfsteel.com/hulizhong/category/44446.html----Java's Slave----<br> ***Java's Host***zh-cnTue, 30 Mar 2010 02:15:31 GMTTue, 30 Mar 2010 02:15:31 GMT60CVS的历双Ӏ功能、基本概늚介绍[转蝲]http://www.aygfsteel.com/hulizhong/archive/2010/03/30/316902.html二胡二胡Tue, 30 Mar 2010 01:48:00 GMThttp://www.aygfsteel.com/hulizhong/archive/2010/03/30/316902.htmlhttp://www.aygfsteel.com/hulizhong/comments/316902.htmlhttp://www.aygfsteel.com/hulizhong/archive/2010/03/30/316902.html#Feedback0http://www.aygfsteel.com/hulizhong/comments/commentRss/316902.htmlhttp://www.aygfsteel.com/hulizhong/services/trackbacks/316902.html历史 
    CVS 诞生?1986 q_(d)当时作ؓ(f)一l?shell 脚本而出玎ͼ1989q?月,Brian Berlinor用C语言重新设计q编写了CVS的代码;1993q前后,Jim Kingdon最l将CVS设计成基于网l的q_Q开发者们能从InternetM地方获得E序源代码。截至目前最新版本是2004q?2?3日发布的1.12.11?span class="Apple-converted-space"> 


功能介绍 
一?nbsp;代码l一理Q保存所有代码文件更改的历史记录。对代码q行集中l一理Q可以方便查看新增或删除的文Ӟ能够跟踪所有代码改动痕qV可以随意恢复到以前L一个历史版本。ƈ避免了因为版本不同引入的深层BUG?span class="Apple-converted-space"> 
二?nbsp;完善的冲H解x案,可以方便的解x件冲H问题,而不需要借助其它的文件比较工具和手工的粘贴复制?span class="Apple-converted-space"> 
三?nbsp;代码权限的管理。可以ؓ(f)不同的用戯|不同的权限。可以设|访问用L(fng)密码、只诅R修改等权限Q而且通过CVS ROOT目录下的脚本Q提供了相应功能扩充的接口,不但可以完成_的权限控Ӟq能完成更加个性化的功能?span class="Apple-converted-space"> 
四?nbsp;支持方便的版本发布和分支功能?

基本概念 
资源库(RepositoryQ?/strong> 
CVS的资源库存储全部的版本控制下的文件copyQ通常不容许直接访问,只能通过cvs命o(h)Q获得一份本地copyQ改动后再check inQcommitQ回资源库。而资源库通常Z工作目录分离的。CVS通过多种方式讉K资源库。每U方法有不同目录表示形式?span class="Apple-converted-space"> 
版本QRevisionQ?/strong> 
每一个文件的各个版本都不相同QŞ?.1, 1.2.1,一?.1是该文g的第一个revisionQ后面的一个将自动增加最右面的一个整敎ͼ比如1.2, 1.3, 1.4...有时候会(x)出现1.3.2.2Q原因见后。revisionL偶数个数字。一般情况下revision看作时CVS自己内部的一个编P而tag则可以标志用L(fng)特定信息?span class="Apple-converted-space"> 
标签QTagQ?/strong> 
用符号化的表C方法标志文件特定revision的信息。通常不需要对某一个孤立的文g作tagQ而是Ҏ(gu)有文件同时作一个tagQ以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布Y件的时候表C哪些文件及(qing)其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认不?x)覆盖原来的Q?span class="Apple-converted-space"> 
分支QBranchQ?span class="Apple-converted-space"> 
当用户修改一个branch时不?x)对另外的branch产生M影响。可以在适当的时候通过合ƈ的方法将两个版本合v来;branchL在当前revision后面加上一个偶数整敎ͼ?开始,?l束Q,所以branchL奇数个数字,比如1.2后面branch?.2.2Q该分支下revision可能?.2.2.1,1.2.2.2,... 
冲突QConflctQ?span class="Apple-converted-space"> 
完全是纯文本的冲H,不包含逻辑上的矛盾。一般是一份文ӞA做了改动QB在A提交之前也做了改动,q样最后谁commit׃(x)出现冲突Q需要手工解军_H再提交?span class="Apple-converted-space"> 

CVS与eclipse集成开?/strong> 
  前面对CVS的历双Ӏ功能、概论等理论知识做了介绍。下面我们将使用最行的Java IDE Eclipse中内|的CVS工具Q以一个完整开发流E,介绍实际环境中CVS的正用。关于CVSpȝ的安装,不是本文的内容,(zhn)可以从附录的链接中获取安装的介l资料?span class="Apple-converted-space"> 

常用的CVS控制命o(h) 
Check OutQ检出) 
把源文g从cvs源代码仓库中取出Q缺省的版本是最新的版本Q你也可以选择指定的版本。在每次更改源代码之前,需要Check Out最新的版本Q再起基之上Ҏ(gu)代码q行修改。将代码目录checkout到指定目录下Q所有文仉是read-write?span class="Apple-converted-space"> 
Check InQ检入) 
把源代码加入到cvs源代码仓库中Q每一个添加进代码库中的文件的版本?1.1。以后每ơ修Ҏ(gu)仉新ci以后Q此文g的版本递增?.2 Q?.3.……。在每次Ҏ(gu)代码修改之后Q需要Check InQ提交最新版本的源代码?span class="Apple-converted-space"> 
Synchronize with Repository(与资源库同步Q简U同? 
使本地更改与资源库同步,它会(x)列出本地和资源库之间不同的所有文件?span class="Apple-converted-space"> 
Add to Version Control 
新的文件加入到版本控制之中?span class="Apple-converted-space"> 
Add to .cvsIgnore 
文件设|到版本控制之外Q这栯文g或目录中的文件的更改在CVS中不可见Q即使同步也无法发现?/p>

CVS正确使用步骤 
一?nbsp;同步QSynchronizeQ?/strong> 
是本地更改与服务器同步,同步之后可以清晰的看C一捡出QCheck OutQ版本之后本地、服务器上的最新改动。这是非常有用的Q特别是敏捷开发,集体拥有代码。有了同步功能,你可以全局把握目的代码,可以很方便的跟踪公共模块代码的Q何改动?span class="Apple-converted-space"> 
具体操作Q在Eclipse的资源视图(Resource PerspectiveQ或者Java视图QJava PerspectiveQ中Q选中要同步的目录Q点d键选择"Synchronize with Repository",之后它将昄同步的视图。如下图Q?span class="Apple-converted-space"> 

(图一、CVS同步视图) 
同步之后Q它有四UMode可以选择Q见上图l色框框里按钮。从做到叛_别ؓ(f)Q?span class="Apple-converted-space"> 
Incoming ModeQ表CZҎ(gu)来自服务器,对应于更斎ͼupdateQ操作?span class="Apple-converted-space"> 
Outgoing ModeQ表CZҎ(gu)来自本地Q对应提交(commitQ操作?span class="Apple-converted-space"> 
Incoming/ Outgoing ModeQ本地和服务器修攚w在该模式QModeQ中昄?span class="Apple-converted-space"> 
Conflicts ModeQ显C本地和服务器修改的冲突文g?span class="Apple-converted-space"> 
二?nbsp;更新QupdateQ?span class="Apple-converted-space"> 
比较单,选择Incoming ModeQ再选中要更新的文gQ右键选择update操作?span class="Apple-converted-space"> 
三?nbsp;解决冲突q合q?solve conflct and merge) 
如果有冲H文Ӟ冲突文g不能更新。你必须先解军_H再操作。选中冲突的文Ӟ再点右键选择"Open in Compare Editor"Q用比较工具打开该文件。如下图Q?span class="Apple-converted-space"> 

Q图二、CVS比较器视图)

比较器(CompareQ视图,左边版本底的是本地文ӞLocal FileQ,双是远E服务器文gQRemote FileQ。?Select Next Change"按钮Q绿框中的第一头向下按钮Q,逐一查看不同炏V如果不同点标识为黑色框框,则不用管它。如果是蓝色框框Q则需要手工调整。如上图Q不同点是蓝色框框,鼠标放C个不同点的中间小Ҏ(gu)中,则凸Z个向右的按钮Qƈ昄提示信息"Copy Current Change from Right to Left"Q意思是右Ҏ(gu)务器的不同点覆盖到左边的本地文g。点中此按钮。重复这L(fng)操作Q将所有服务器上的更改拯到本地?span class="Apple-converted-space"> 
如果有一行代码,本地和服务器都同时做了修攏V这Ӟ修改点则昄U色框框。这Ӟ你就必须手工做正的修改。全部修改完成,保存本地文g?span class="Apple-converted-space"> 
此时Q如果修改点没有了蓝色的框框Q就可以开始做合ƈQmergeQ操作了。操作也很简单,选择该文Ӟ点击右键Q选择"Mark as merged"?span class="Apple-converted-space"> 
注意Q必ȝ保没有蓝色框框,卛_全拷贝了服务器的修改才可以做合ƈQmergeQ操作,否则?x)覆盖服务器上的代码?span class="Apple-converted-space"> 
四?nbsp;提交QcommitQ?span class="Apple-converted-space"> 
更新服务器代码,解决冲突之后Q首先要查看本地文g修改之后是否有错误。如果有Q当焉先解决错误,再提交?span class="Apple-converted-space"> 



二胡 2010-03-30 09:48 发表评论
]]>
վ֩ģ壺 | ͼ| Ͽ| | | ٰ| Ҧ| ̩| | ½| | گ| ̨ǰ| | ƺ| | | | | | ٽ| | ̨| | | | | | | ٲ| IJ| | | | | | | | | ˮ| |