憨豆笑话网开心快乐,每一天。SVN培训----arain2010.7.23憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。SVN培训SVN培训Phase4SVN的权限控制Phase1SVN介绍Phase3SVN的目录结构Phase2TSVN常用命令憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。Phase1SVN介绍1.SVN简介(what,why,when)What:英文全称(subversion),一种版本控制系统。什么是版本控制系统?有哪些版本控制系统(vss,cvs)?why:支持重命名,跨平台,原子性提交,全局的版本号,高效地创建基线…when:当需要对代码和文档进行版本控制的时候。特别是对于开发人员要做基于“基线”的开发的时候。什么是“基线”?憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。2.SVN的客户端:tortoiseSVN(TSVN),我们的操作基本都是通过TSVN的。3.SVN帐号注册:的访问方式(与apache结合):a)在TSVN中输入:版本库名/路径名。如:什么是版本库?如何打开TSVN(Repo-browser命令)?b)在浏览器中输入:可以看到所有的版本库。如:注意:前提是有访问权限,关于权限请参看第四节憨豆笑话网开心快乐,每一天。注册SVN帐号•访问:8080/svn密码要大于6个字符,设置复杂些,比如包含字母和数字憨豆笑话网开心快乐,每一天。Phase2TSVN常用命令1.Repo-browser(本地):输入URL访问SVN版本库。2.Checkout:从版本库中取出一个工作拷贝到本地。本地目录产生.svn隐藏文件夹,里边保存服务器以及本地的很多相关信息,可以与服务器进行数据交互。3.Commit(本地):从本地拷贝提交到版本库中。4.Update(本地):从版本库中更新到本地拷贝。5.Export:从版本库中取出文件或目录。本地不可以与服务器直接进行数据交互,类似于我们常说的下载。6.Showlog,createfolder,delete,rename,refresh,addfile/folder。7.Resolved(本地):解决冲突。8.Updatetorevision(本地):可以恢复到以前某一版本。9.Tag/branch(本地):用于创建基线。憨豆笑话网开心快乐,每一天。2.1浏览SVN版本库目录:Repo-browser憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。2.2Checkout从版本库中取出一个工作拷贝到本地。憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。2.3commit提交本地修改憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。2.4update从版本库中更新到本地憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。2.5export从版本库中取出文件或目录本地不可以与服务器直接进行数据交互,类似于我们常说的下载。憨豆笑话网开心快乐,每一天。憨豆笑话网开心快乐,每一天。注意:没有.svn的隐藏文件夹,不与SVN直接联系。憨豆笑话网开心快乐,每一天。在TSVN的目录上点右键还有很多命令,比如:Showlog,createfolder,delete,rename,refresh,addfile/folder。2.6TSVN上的其它命令憨豆笑话网开心快乐,每一天。当在本地运行update命令弹出如下图所示的消息框的时候,说明产生冲突了。2.7resolved解决冲突憨豆笑话网开心快乐,每一天。冲突文件里边的冲突部分会以:.mine本地的内容=======版本库里的内容.r31标识。憨豆笑话网开心快乐,每一天。本地会多出一些以冲突文件名为前缀的其它文件,这些文件可以先不用管,等后面运行resolved命令后会自动消失。憨豆笑话网开心快乐,每一天。解决冲突:解决冲突通常有两种办法,一种直接在文件上改,另一种用TortoiseMerge工具。解决冲突要与其它同事协商。如下图直接在文件上改,并同时要把冲突部分的标识也要删掉。冲突内容修改前:冲突内容修改后:解决冲突的两种办法憨豆笑话网开心快乐,每一天。使用TortoiseMerge工具解决冲突在弹出的冲突消息框右键单击下图的蓝色部分,这时会弹出一个TortoiseMerge的界面。憨豆笑话网开心快乐,每一天。左上角是版本库里对应文件的内容,右上角是本地冲突文件的内容,下边是合并(解决冲突)后的内容。红色部分表示是冲突的内容,要对这部分内容进行修改。憨豆笑话网开心快乐,每一天。可以在左上角(版本库里的文件)或右上角(本地的文件)的红色部分(冲突部分)右键单击,会弹出一个白色小框。Usethistextblock:表示合并后用这部分内容;usethiswholefile:表示合并后完全用这个文件。后面两个命令用得少。憨豆笑话网开心快乐,每一天。上图中我在左上角的红色区域选择了Usethistextblock,这时我们发现下边的合并框的红色部分没有了,变成了绿色,而里边的内容也变成了左上角我们选择的内容。憨豆笑话网开心快乐,每一天。我们还可以在下边的框里直接编辑合并后的内容。编辑完后保存关闭TortoiseMerge。憨豆笑话网开心快乐,每一天。解决完冲突以后运行resolved命令憨豆笑话网开心快乐,每一天。运行resolve命令后会出现左上角的框,选中冲突的文件,点击OK。这时我们发现前面多出的几个以文件名为前缀的几个文件消失了。到此为止,冲突完全解决,可以正常提交(commit)。憨豆笑话网开心快乐,每一天。2.8Updatetorevision可以恢复到以前某一版本。我们可以在本地用updatetorevision命令恢复到版本库中以前的某一版本。我们可以用showlog命令查看以前的版本信息。这时我们发现填写log信息非常重要。如下图我们看到的log信息,我们在本地恢复到14版本。憨豆笑话网开心快乐,每一天。恢复到14版本后,我们发现c.txt不见,因为那个时候版本库中还没有这个文件。憨豆笑话网开心快乐,每一天。2.9Tag/branch创建基线憨豆笑话网开心快乐,每一天。蓝色标出的是打基线的目的路径,红色标出的是基线的文件夹名字,注意这个文件夹是打基线的时候自动创建的,不是先前创建好的。憨豆笑话网开心快乐,每一天。打基线前:打基线后:憨豆笑话网开心快乐,每一天。Phase3SVN的目录结构•trunk:开发主干线目录•doc:文档目录•src:源代码目录•tags:基线目录•testrelease:版本测试目录•productrelease:产品发布目录(基线)•branches:分支目录代码与文档在目录中的流动过程憨豆笑话网开心快乐,每一天。Phase4SVN的权限控制•涉及公司内部资料,略憨豆笑话网开心快乐,每一天。自由问答憨豆笑话网开心快乐,每一天。谢谢大家!憨豆笑话网开心快乐,每一天。