Subversion版本控制系统的使用.ppt_第1页
Subversion版本控制系统的使用.ppt_第2页
Subversion版本控制系统的使用.ppt_第3页
Subversion版本控制系统的使用.ppt_第4页
Subversion版本控制系统的使用.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Subversion版本控制系统的使用,福州大学软件学院陈昱,为什么需要版本控制系统?,一个软件项目的开展,是个分工合作的过程,单打独斗的时代已经过去。当你的代码想要进行大幅度修改,但是又没有把握成功怎么办?(把原来的版本复制一份做备份?)当某人写了一个模块的新代码,其他成员如何获得?(文件共享?QQ传过去?)当两个成员想同时修改一个程序文件怎么办?(怎么处理?谁说了算?),相信大家都经常这么做吧,为什么需要版本控制系统?,程序员编写程序的过程中,每个程序都会生成很多不同的版本这就需要程序员能有效的管理代码,在需要的时候可以迅速、准确取出相应的版本任何需要管理信息频繁改变的地方都需要它,这就是版本控制系统的舞台,版本控制,版本控制是管理信息变更的一门艺术对于经常对代码改来改去的程序员来说,它已是不可缺少的工具但版本控制软件的用途并不仅限于软件开发的领域。只要人们使用计算机来管理经常变更的信息,就可以使用版本控制工具代码,文档,系统配置文件,图片,音乐,Outline,Subversion简介Subversion的安装版本控制中的基本概念Subversion常用功能讲解,什么是Subversion?,什么是Subversion?,Subversion是一个自由/开源的版本控制系统,前身为CVS,简称SVNSVN将一组文件存放在中心版本库,并记录每一次文件和目录的修改,这个版本库很像像Windows文件共享,其他人可以通过网络访问最新的文件不同的是,它可以记录每一次文件和目录的修改情况!,什么是Subversion?,Subversion的版本库可以通过网络来访问,允许不同的用户在不同的计算机上使用,而且跨平台不同的使用者可以进行协同工作;而且所有工作都是有记录的,如果有错只要撤销就可以就像“时间机器”,可以回到过去任何时刻就像拥有一个可以无限Undo的编辑器,Subversion的体系结构,典型的Client/Server结构服务器存放版本数据库(版本库)客户端通过网络访问数据,并管理代码的本地映射(称为“工作副本”),Subversion的安装配置,Subversion的安装,安装Subversion的最简单的方法就是下载适合于你的操作系统的二进制软件包apt-getinstallsubversionSVN服务器端,客户端哪个先装都可以个人使用可以不需要安装服务器端Subversion官网(配置服务器端需要)TortoiseSVN客户端,Subversion的组件,常用的组件是svn和svnadmin,有图形化客户端来实现svn和svnadmin功能svn一个命令行的客户端程序svnadmin用来创建或者是修复版本库的工具,svn客户端,Subversion的组件,mod_dav_svnApache服务器的一个插件模块,用来使其他人可以通过http协议访问这个版本库svnserve一个定制的、独立的Subversion服务程序可作为一个驻留进程运行或者是由SSH调用使版本库可以通过私有的svn协议访问,TortoiseSVN客户端,Windows系统客户端图形化界面,集成了svn和svnadmin命令行工具的功能集成于资源管理器功能中,使用方便,易于掌握直接安装,方法同一般软件安装相同,安装TortoiseSVN,有中文语言包安装完后进行一下语言配置,安装合并比较工具,合并比较工具(Merge软件)在开发中用于查看两个文件/目录的差异开源的WinMergeTortoiseMerge(TortoiseSVN自带)商业的AraxisMergeBeyondCompareProfessional,设置合并/比较工具,练习,TortoiseSVN已安装在计算机上,请用右键调出TSVN的菜单,进入Setting查看一下今天先不用安装额外的Merge工具,使用自带的TortoiseMergeSubversion与AraxisMergeftp:/,今天着重介绍SVN在跨平台多人协作开发时的使用方法在多个程序员管理同一段代码的过程中,版本的管理显得尤为重要,使用SVN可以方便的进行分支、合并,记录下所有的版本,Subversion快速入门,单人的工作流程,创建版本库CreateRepository导入版本库Import初始化的Checkout,创建工作拷贝开始工作提交修改,基本术语:版本库Repository,Subversion版本库可以记录写入版本库的每一次更改这些更改包括对每一个文件的每一次修改也可以是对目录本身的修改,例如添加文件、删除文件和对文件和目录的重新命名版本控制系统的核心:记录和跟踪数据的修改历史,基本术语:版本库Repository,就像一个网络上的共享文件夹/数据库客户端可以连接到版本库,读写这些文件通过写,别人可以看到你做的修改;通过读数据,可以看到别人的修改,1、创建版本库,创建一个空文件夹用于存放版本库,比如svnrepo在文件夹上右键TSVN-CreateRepositoryhere,访问版本库,Subversion可以通过多种协议访问版本库版本库地址是一个URL格式比如file:/C:/svnrepo/myproject/trunk,版本库浏览器,在版本库上右键,TSVN-Repo-Browser初始状态下,仓库为空,2、初始导入,导入前SVN版本库的负责人要先规划好版本库的目录结构,然后将初始代码导入库中一般每个项目下面建立3个子目录trunk开发的主干branches开发的分支tags重要版本记录将项目最初的代码放在trunk目录下注意,导入仓库前先清理掉无关的文件,需要忽略的文件,在TSVN的Setting的General中,可以设置需要忽略的文件以便SVN忽略掉一些临时的、无用的文件常被忽略的文件后缀有*.opt*.ncb*.suo*.plg*.pch*.idb*.pdb*.scc*.objDebugRelease*.o*.bin*.out*.ilk*.aps*.clw*.bak每个程序员可以根据自己的需要进行修改忽略文件,上面只是使用VC+编程时常用的一些忽略文件列表,初始导入,右键-TortoiseSVN-Import.,初始导入,完成之后目录没有任何变化如果没有报错,数据就已经全部导入到了刚才定义的版本库中,3、检出Checkout,检出的目的是创建本地的工作拷贝记住从trunk子目录导出,不要将整个版本库导出接下去就可以在工作拷贝上开始你的工作,基本概念:工作拷贝WorkingCopy,一个Subversion工作拷贝是版本库中的文件在本地计算机上的一个拷贝你的工作就在工作拷贝上进行一个用户的工作拷贝往往对应版本库的一个子目录,基本概念:工作拷贝WorkingCopy,工作拷贝除了包含项目文件之外,还包含了一个.svn目录,叫做工作拷贝管理目录这个目录里的文件能够帮助Subversion识别哪一个文件被你做过修改,哪一个文件相对于别人的工作已经过期了,检出Checkout,点击右键-Checkout,在URLofrepository中输入刚才导入的URL路径,这样我们就得到了一份工作拷贝注意:应检出trunk目录下的内容,进行开发工作,检出完成后,就可以在工作拷贝上进行你的开发工作当开发的一个阶段完成后,可以将你做的修改重新放回版本库这就是提交操作,4、提交Commit,将你在工作版本上所做的更新提交到版本库中注意:不需要把系统的临时文件或是可以由程序再度生成的文件提交给版本库比如应该提交的是Timer.java,而不是Timer.class,Timer.java.bak,练习,在机上创建一个版本库创建一个目录作为初始导入目录,在里面规划好项目的目录结构放入一些项目文件,完成初始导入通过检出操作生成一个工作拷贝对工作拷贝中的文件做一些修改提交所做的修改,然后继续修改,更复杂的情况,如果你是自己完成项目,比如独立做家庭作业,那到这里就够了但如果是项目组合作,就有2个新的问题:如何获得别人对程序进行的更新?两个人同时编缉一个文件怎么办?,多人合作开发流程,多人协作时的工作流程,对工作拷贝做出修改对代码的修改文件和目录的修改(创建,删除,拷贝,移动/重命名)svnadd,delete,copy,move更新Updatesvnupdate合并冲突(如果有的话)并测试提交你的修改Commit,对工作拷贝做修改,对代码内容的修改对文件和文件夹的修改(创建,删除,拷贝,移动/重命名)注意:拷贝,移动和重命名要通过subversion的客户端进行,不要用Windows的资源管理器来进行,否则之前的版本信息会丢失,对工作拷贝做修改,使用SVN删除、移动与重命名文件夹的方法是在文件/文件夹上点右键进行SVN操作,或直接在资源浏览器中使用右键拖放(会弹出SVN选项),或者在repo-browser中进行文件的删除、移动与重命名之前,必须保证工作目录是最新的版本;进行这些操作之后,需要立刻进行提交,更新Update,检查在你工作的这段时间内,版本库中是否有别人所作的新修改三种情况别人和你修改的是不同文件别人和你修改的是同一个文件的不同部分(比如他修改了开头,你修改了结尾)别人和你修改的是同一个文件的同一个部分建议一个小时更新一次,更新Update,如果版本库在你提交之前有过更新,SVN会阻止你提交,让你先进行更新,处理冲突,如果两个人同时编辑一个文件,会发生什么情况?别人和你修改的是同一个文件的不同部分(比如他修改了开头,你修改了结尾)Subversion会自动帮你合并差异别人和你修改的是同一个文件的同一个部分(冲突)需要你自己动手解决冲突,更新时Subversion会自动合并差异,手动解决冲突,发生冲突的时候,SVN会为你标注出冲突的地方遇到这种情况,只有人本身才有能力理解和做出合理的选择。注意,软件并不能自动解决冲突冲突的解决依赖于项目组内部的交流,手动解决冲突,进行更新后,SVN会标识出冲突的位置,基础概念:修订版本Revision,每次对版本库做一次修改,版本库中的文件系统目录都会创建一种新的状态,叫做一个修订版本每一个修订版本都被赋予一个唯一的自然数,并且每一个修订本的数字都比前一个要大。刚刚建立的版本库的初始的版本是0,只包含一个空的根目录。,基础概念:修订版本Revision,Subversion的修订版编号是针对整个目录树的,而不是某一个独立的文件HEAD表示最新的修订版本,手动解决冲突,手工修改了冲突的地方后,删掉冲突时的临时文件,可以再次进行提交,接下去,处理完冲突,就可以提交你的工作然后就下班了等所有人都下班了,计算机进行自动构建自动测试自动提交bug到缺陷跟踪系统自动部署,敏捷开发相关技术,版本控制单元测试持续集成缺陷跟踪知识共享,第二天,svnupdate查看计算机提交的bug列表开始新一天的工作结束一天工作时记得svncommit,搭建SVN服务器,进行多人开发时,开发组成员需通过网络访问版本库因此,必须搭建一个存放版本库的服务器供大家共享通常可以使用Apache或是自带的svnserve.exe搭建服务器http协议和svn协议,安装SVN服务器,使用VisualSvNServer安装时填入端口号和版本库地址注意不要安装在含中文的路径,访问远程的版本库,进行多人开发的时候,就必须通过网络协议(http或是svn等)访问版本库,练习,搭建SVN服务,将刚才所创建的SVN版本库通过服务进行共享互相之间通过其他同学的IP访问对方的版本库右键-TSVN-RepoBrowsersvn:/服务器IP,练习,和旁边的同学配合,以其中一人的机器作为服务器,导出服务器上的版本库模拟开发过程,两人共同修改程序模拟冲突的发生,实验解决冲突的过程,推荐阅读资料,参考书目,使用Subversion进行版本控制,参考书目,PragmaticVersionControlusingSubversion,2ndEdition版本控制之道,E-Book下载,ftp:/,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论