SVN的学习记录

1.    SCM出现背景:应对开发过程中出现的问题,比如很多开发人员在同一时间开发同一代码,为了应对冲突,又如跨多平台,多版本的控制。

2.    历史:从UNIX上面的两个软件SCCS、RCS发展而来,但是SVN后来解决了CVS的很多问题,应用较广。

3.    定义:用来记录并控制软件产品数据的管理工具。Repository,仓库,用来存放所有人所有的版本;workspace,从repository里面把版本拿出来,放到工作台里面构成新的项目,进行新的开发。Isolated space for coding、debug、testing。delta,表示存取版本变化的部分,而不是把每个变化的版本都存起来,如果想得到某一个版本只要对版本进行一定的变化加减就能得到。Branch,包括基于项目的分支和基于文件的分支,大多数时候用基于项目的分支,把项目的主干分支上单独copy一份,做一个定制开发。baseline,表示最开始的版本。merge,合并,把多人开发的部分合并到一起。

4.配置步骤:下载。第一步,先建立一个核心仓库reporsitory,svnadmin create 目录。这样就会建立一个目录,这个目录是由svn自己维护的,不要自己手动更改目录里面的东西,可以在conf里面设置权限设置,如谁能够打开库等,可以修改svnserve.conf更改里面的设置,如passwor-db=passwd。一般项目组有几个人,就可以建立几个用户,给他们设置上不同的密码。第二部,启动服务器,即启动库。svnserve -d -r 目录名称(全路径)。服务器运行方式有两种,svnserve和apache http。

5.从库里面下载的过程叫checkout,上传的过程叫checkiny也即commit。比如在自己项目里面建了一个文件,点右键,用add,把文件添加到库里面,然后commit提交。简单的讲add育commit的区别就是add是把新建的文件纳入到版本控制中,而commit是把改动发到库中。如果新建了一个用户,想把别的用户的内容checkout来,那么就用右键、checkout,就行了。

6.安装到eclipse里面。一般的操作是,建项目入库,update下载到自己的workspace里面,自己修改,提交。在Eclipse里面show viewer-->svn资源库。然后用team里面的提交就能提交到库里面。

设置场景:1.一个人已经提交了一个project了,另一个人想把这个project拿下来做开发。那么第二个人,先在svn资源库里面新建一个svn://localhost,然后直接在project右键检出为。。。,然后就能拿下来所有的project。2.一个人已经更改了project,另一个人想把更改之后的project拿下来,可以直接在项目上右键-->更新.也可以切换视图到teamSynchronizing,synchronize的意思是由update自动下载或上传。也可以右键comparewith进行比较。3.当两个人拿去相同的版本进行修改之后再提交,就会产生冲突,SVN会给出提示。解决方案是,把远程的更新到本地更改之后再提交,或者进行沟通。

svn

相关推荐