第八章 源代码控制管理工具Subversion.ppt_第1页
第八章 源代码控制管理工具Subversion.ppt_第2页
第八章 源代码控制管理工具Subversion.ppt_第3页
第八章 源代码控制管理工具Subversion.ppt_第4页
第八章 源代码控制管理工具Subversion.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、Page 1/40,第七章内容回顾,GCC是什么 什么是GDB,第八章,源代码控制管理工具,预习检查,什么是版本控制 什么是Commit,3,Page 4/40,本章目标,能够:理解和掌握Subversion的概念及配置 能够:会使用TortioseSVN客户端工具,Page 5/40,本章结构,什么是版本控制,源代码控制管理,Unix/Linux的起源与发展,Linux在企业中的应用,Linux的安装方式,系统安装过程,Linux的图形界面,服务器和客户端,Unix/Linux版本,Subversion和TortoiseSVN,磁盘分区,文件系统和目录结构,Subversion的基本操作,8

2、-1-1 什么是版本控制?,版本控制就是对在软件开发过程中所创建的配置对象的不同版本进行管理,保证任何时候都能取到正确的版本以及版本的组合。摘自贝尔实验室配置管理的精髓 版本控制(Version Control)是软件配置管理中的重要一环 主要功能:记录开发过程的每一次修改,让开发工作可以随时检查过往的历史和获取正确的版本;是系统的“成长记录”。,8-1-2为什么要使用版本控制?,在协同开发过程中,确保能够: 保存所有更改的记录,防止改动丢失 能够快速回复到特定版本的状态 能够获取其他成员的更改 在单独开发时,上述的前两点对于自己的开发过程管理也有莫大的好处。,8-1-3 版本控制的方式,两种

3、典型的方式:Lock-Modify-Unlock方式和Copy-Modify-Merge方式,分别以Visual Source Safe和CVS为代表 Lock-Modify-Unlock方式:一个文件同一时刻只能有一个人进行修改,可防止冲突,但不利于合作开发; Copy-Modify-Merge方式:可以多人同时修改一个文件,会有冲突的情况,更强调开发人员的交流,对于合作开发比较合适;,8.1.4版本控制的几个术语,项目仓库 工作拷贝 导入 检出 导出 提交 更新,8.1.4 版本库访问 URL,Subversion 可以通过多种方式访问本地磁盘访问,或各种各样不同的网络协议,但一个版本库地

4、址永远都是一个 URL,URL 方案反映了访问方法。,8-2-1 Subversion是什么?,Subversion 是一个自由的、开放源码的版本控制系统,拥有CVS的大部分特征,并在CVS的基础上有更强的扩展,用来代替 CVS 系统。 单词“Subversion”的意义 字面上的意义:Sub + Version,标识Subversion是一个版本控制系统。 英语中有Subversion这个单词,意思是“颠覆” :Subversion要颠覆CVS的地位。 它可以管理各个时刻的文件和目录 。 Subversion 将文件存放在repository库中。这个仓库非常类似于一个普通的文件服务器,只是

5、它还可以记录文件和目录曾经做过的每一次变更 。 可把版本控制系统比作一种“时间机器” 。 Subversion 的仓库可以通过网络来访问,允许不同的用户在不同的计算机上使用 。 不同的使用者可以进行协同工作 。而且所有工作都是有记录的,如果有错只要撤销就可以。 它是一个通道,可以管理任何计算机中的文件系统。 需要得到版本管理规范的支持,8-2-1 CVS和Subversion的比较,8-2-1 Subversion与CVS相比改进的地方,统一的文件版本 目录控制:在Subversion中目录的变更也是受控的 支持文件复制、重命名 事务性的提交 高效的分支和标记 扩展能力:Subversion提

6、供了一组API,可以供其他语言直接调用。,8-2-1使用上的主要不同,Subversion的版本号是所有文件共用一个版本号,每一个个文件的改变都会导致总体版本号发生改变; Subversion的分支/标签都以文件夹的方式显示,而不象CVS只是一个独立的标签; 当作为Apache的Web DAV使用时,Subversion 使用Http协议传输,可以直接在Web浏览器中浏览;,8-2-2 TortoiseSVN是什么?,TortoiseSVN是Subversion版本控制系统的一个免费开源客户端 是一个shell扩展程序,与Windows Explorer整合在一起 在Windows Explo

7、rer里面单击右键就可以操作相关菜单 其它Subversion客户端 Subversion命令行程序 RapidSVN:独立的Windows程序,最新版本0.92,仍处于Beta阶段; AnkhSVN:和Visual Studio集成,可以在Visual Studio中使用Subversion,仍处于开发过程中,最新版本0.60 Beta;功能尚不完善。 Web浏览器:ViewCVS/ WebSVN等,网络程序,可在浏览器中查看SVN信息;,8-3-1 Windows平台Subversion服务器端的安装配置,安装程序从获取; 在Windo

8、ws平台直接执行安装程序进行安装; 在服务器端创建文件仓库(两种安装方式) (1)mkdir c:svn-repos svnadmin create c:svnrepos (2)使用TortoiseSVN自动生成 4. 启动服务器 方式一:类似CVS,作为独立服务运行,安装完成后运行如下命令运行Subversion: start svnserve -daemon -root d:svn-repos 可以使用第三方的工具将Subversion添加为Windows的Service(参见/mbn/svnservice/); 方式二:将Subversion添加为Apa

9、che的Web DAV运行;这种方式对于Subversion的控制和管理比较方便,但是配置相对比较麻烦。 建议:个人使用或者对权限控制等要求不高时以独立服务的方式使用Subversion,当团队开发时使用Web DAV的方式使用Subversion。,8-3-1配置用户和权限,进入项目仓库的conf目录 修改svnserve.conf和passwd文件,8-3-1 以服务形式运行svnserve,以服务形式运行svnserve 安装服务 sc create svnserve binpath= C:Program Filessvnservesvnserve.exe -service -root

10、c:repos displayname= Subversion depend= tcpip start= auto 删除服务 sc delete svnservice,8-3-2 Subversion客户端TortoiseSVN的安装和设置,获取安装文件 从下载; 安装 直接安装,安装完成后会自动集成在资源管理器的右键菜单中; 完成后,提示要重启计算机,选择“否”,运行中文语言包程序完成后再重启计算机 注意事项:安装时“ASP_HACK”的选择,如果做ASP.Net开发,安装时一定要选择该项。 设置 主要设置:语言 全局忽略模式 差异查看工具和合并工具 文件叠加图标 右键菜单(外观样式),8-

11、4-1 Subversion的基本概念,Repository(文件仓库) Workcopy(工作复本) Checkout(检出) Commit(提交或检入) Update(更新),8-4-2 Subversion的基本操作,主要操作: 把本地文件添加到文件仓库中 -初始文件导入 从SVN文件库中取出代码 -检出 更新本地文件 文件/目录改名 把文件和目录添加到文件仓库中 从SVN中删除文件 提交修改后的文件 -检入,初始文件导入,svn import -m importing bb . svn:/12/bb,从SVN文件库中取出代码,功能:从SVN服务器中取出已有的代码,

12、可以取出当前的最新代码或指定标签/分支的代码。 操作: 在资源管理器中点击鼠标右键,选择“SVN 取出”; 输入要取出代码的文件库的URL地址; 默认是取出主版本的代码,如果需要取出指定标签的代码,则在“版本” Group中指定; 版本号的意义说明(非强制):主版本为1.x,x表示该文件的第x次修改;分支版本为1.x.y.z,表示该分支是在第1.x个主版本上建立的1.x.y分支,在该分支上进行了z次修改;,worksvn checkout svn:/12/aa,worksvn checkout svn:/12/aa anew,worksvn chec

13、kout -r 4 svn:/12/aa a4,worksvn info aa,更新本地文件,功能:获取其他用户对文件进行的修改,与自己对文件进行的修改进行合并,保证本地的文件总是最新的。 操作: 选中要更新的文件或文件夹,在右键菜单中选择“更新”; 在资源管理器的空白处进行上述操作则对当前目录进行更新。 更新时对不同的人所做的修改会自动合并,如果无法自动合并则会发生冲突,需要手工用文件比较工具进行合并。 说明: 在团队开发时,更新是一件很重要的工作,可以保持团队成员之间的工作内容一致,因此要注意经常更新自己的工作复本,以保证自己能够获得最新的修改内容。,worka4sv

14、n update,对文件/目录进行改名,功能:对文件/目录进行Subversion控制下的改名操作,用此功能对文件/目录进行改名后文件仍处于SVN的控制下并保持连续的变更信息。 操作: 在资源管理器中选中要改名的文件,右键“TortoiseSVN重命名”; 输入新文件名,点击“确定”; 对文件的重命名将在提交后起作用。 注意:必须使用Subversion的重命名功能,直接在资源管理器中进行重命名SVN无法监控。,对文件/目录进行改名,rootyft aa# svn move b.txt a.txt rootyft aa# svn commit -m Renamed b.txt to a.txt

15、,把本地文件添加到文件仓库中,功能:将客户端的文件添加到文件库中,使其接受SVN的控制。 操作: 在资源管理器中打开取出到本地的工作复本,选中要添加的文件,点击鼠标右键,在弹出菜单中选择“SVN 添加”; 在弹出窗口中选择要添加的文件; 点击OK,完成添加操作。,把本地文件添加到文件仓库中,rootyft aa# mkdir timelib rootyft aa# svn add timelib/,从SVN中删除文件,功能:将已经被废弃的文件中从SVN中删除; 操作: 在工作复本中选中要删除的文件/文件夹,在右键菜单中选择“TortoiseSVN”“删除”; 删除后需要提交才能够生效; 说明:

16、 文件被删除后,该文件的所有修改历史仍然保存在SVN服务器中,以后仍然可以获得该文件的修改历史。 workaasvn delete b.txt workaasvn commit -m Delete a.txt,提交新添加的和修改后的文件,功能:将在客户端的工作复本中对文件进行的修改提交到服务器中,使修改正式生效;提交后其他人即可获取你所作的修改。 操作: 选中进行了修改的文件,或选择某个目录(此时对该目录下包括子目录所有新添加的或进行过修改的文件进行提交操作); 在在选中的文件上点击鼠标右键,选择“SVN提交”执行提交操作; 在工作复本的文件夹的空白处点击鼠标右键和选中当前目录执行提交的效果一

17、样。 workaasvn update workaasvn commit -m check in message,其他技巧,导出功能:使用此功能获取一个没有SVN控制信息的工作复本; 清理:当Subversion操作中断时,会有一些残留的操作信息保留在工作复本中,这时需要进行清理才能够重新进行工作; 生成补丁文件:可以将自己所作的修改以补丁文件的方式交给他人,对于只有匿名访问的代码可以以这种方式提交修改; 在资源管理器中显示文件的SVN信息:通过定制资源管理器的显示字段控制;,在项目开发过程中的使用(一),管理员安装、配置SVN服务器,设置用户信息,创建文件库、模块; 用户开始在SVN上工作,

18、并随时将新的工作结果提交到SVN文件库上; 同时用户随时更新自己本地的工作复本,以获得其他人的修改; 当开发工作进行到一定阶段(里程碑)要发布版本(包括测试版本)时,在SVN中创建标签,标识当前发布版本的名称; 如果有每日构建过程,可以按照日期每天创建一个标签;,在项目开发过程中的使用(二),创建标签和开发互不干涉,开发工作可以继续进行;当已发布的版本发现Bug时,可以从SVN中获取各次发布的版本进行比较,以确定是在什么版本引入的Bug; 如果正在开发新版本时,发现旧版本存在Bug,可以在旧版本的基础上创建分支,在分支上修改旧版本的Bug,当旧版本上的Bug修改完成后,可以将该分支上的修改合并

19、到主版本上来; 从版本控制的角度来看,系统的开发过程就是不断地重复以上的过程;,SVN使用中的常见问题,提交时提示文件已经被修改,需要更新; 原因:多人同时修改同一文件,在提交前其他人已经抢先提交到SVN服务器中,导致该错误; 解决方法:对工作复本中的文件进行更新即可。 更新时提示文件发生冲突; 原因:多人同时修改同一文件的同一部分,SVN无法自动进行合并,导致该错误; 解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。,使用SVN应该,经常更新:由于文件可能有多个人修改,应该经常更新你的工作拷贝中的文件,这样能降低发生冲突的可能性; 提交前先在本地进行测试:不允许将有错误的文件提交到服务器上; 提交时一定要写备注:备注有助于其他人(包括三个月后的你自己)理解你对文件所做的修改; 提交文件时注意要提交一项改动所对应的所有文件修改:如ASP.Net开发中一个改动可能同时涉及.aspx文件、.aspx.cs文件和.resx文件,需要同时提交; 对于每一个发布的版本都要建立标签:当用户告诉你发生某个问题时,你可以迅速地追踪到问题是在哪个版本引入的,如果有每日构建,甚至可以每天都建立一个标签; 使用有意

温馨提示

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

评论

0/150

提交评论