今天开始跟着老大学呢,我是个菜鸟,只有脚踏实地了,Fighting
现在开始将项目的点滴记录下来吧,废话不说了
1、导入项目方法以及出现的问题
右击--》inport-->选择Existing Projects into Workspace
![](http://hi.csdn.net/attachment/201107/22/0_1311322108983T.gif)
![](http://hi.csdn.net/attachment/201107/22/0_1311322323i3ip.gif)
![](http://hi.csdn.net/attachment/201107/22/0_1311322338sIir.gif)
![](http://hi.csdn.net/attachment/201107/22/0_13113223497wac.gif)
![](http://hi.csdn.net/attachment/201107/22/0_1311322360muCJ.gif)
![](http://hi.csdn.net/attachment/201107/22/0_13113223702p5l.gif)
![](http://hi.csdn.net/attachment/201107/22/0_131132238127fH.gif)
![](http://hi.csdn.net/attachment/201107/22/0_1311322391B8Dy.gif)
![](http://hi.csdn.net/attachment/201107/22/0_13113224001WW1.gif)
![](http://hi.csdn.net/attachment/201107/22/0_13113224128Ai8.gif)
2011-7-22 版本控制
SVN全称Subversion,是一个主要用于程序开发的版本管理器。
之所以需要版本管理,是因为一个程序由多人合作编写的,不得不面对工作成果的合并。而手工合并,难免会出现各种问题,效率上也不足。版本管理器将合并工作规范化,自动化,大大降低了合并操作的难度。
常见的版本管理器很多,比如VS系列中的VSS,开源的CVS、SVN等,而SVN是其中最流行的。所以我们可以轻松的找到免费的SVN服务。
作为SVN的普通用户,而非管理员,需要学习的操作并不多,无非就是检出、更新、提交、处理冲突等。接下来谈谈这几个操作的概念。
首先说检出操作。检出就是把服务器中的版本库,拿到本地来新建一个工作版本。一般来说,检出操作只需要在第一次加入合作时进行,当然,如果你把你的工作版本删除了,就得重新检出一下。
再说更新操作。虽然检出了一个属于你的工作版本,但是你的伙伴可能又提交了新的代码进入服务器中的SVN版本库,那么你的工作版本就会落后于版本库中的最新版本。这时,你需要更新你的工作版本,以达到和别人的同步。
接着说提交。如果你为程序工程贡献了新的代码,或做出了修改,那么你就该提交你的工作成果到版本库。这样别人才能通过更新自己的工作版本,达到协同工作的目的。
最后说处理冲突。什么叫冲突?当你修改的某个代码,又被别人修改并提交到库中,就会冲突。对于冲突,一般的做法是用SVN找出冲突的部分,再进行手工修改。虽然有种叫锁定的操作,可以把版本库中的文件锁定,不让别人动,而你可以安心修改,不会发生冲突。但多数SVN用户不提倡这么做,因为它会导致分布式开发优势的丧失。
每个文件都有一个版本号,整个版本库也有个版本号。
每次提交都会增加库的版本号,也就代表该库被提交了多少次。文件的版本号表示在该文件在第几次提交中被更改。
比如我又a和b两个文件,我做第3次提交时,提交的是a,所以a最高版本号是r3;第5次提交时,提交的是b,所以b的最高版本号是r5,而这时a的最高版本号还是r3。
冲突是这么回事:
比如一个文件A,我从库中更新我的本地工作版本,更新下来r4版本,A也是r4版本。这时别人改了A,把库和A的版本号都提升到r5。这时我提交那个由r4版本改动后的A。SVN就会发现我的A原件是r4的,版本库里却是r5的,提示我过时了,要求我更新。更新的话,就会发生冲突。如果把别人改动后的r5版本的A替代我修改后的A,我的工作成果就消失了,这就是为什么会冲突。这时,通过SVN客户端,我们可以得到提示,知道哪些地方冲突了(比较文本哪些地方不一样),然后手工合并,再告诉SVN我搞定了冲突,可以提交了,就能提交了。甚至可以不手工合并,选择以我的为准,或以库里的为准(可也是一种合并啊),直接提交。
看了一下,可有SVN客户端会把两个版本都保存到本地,给你看。SVN的客户端很多种。