Linux基础PPT课件第八章源代码控制管理工具Subv.ppt

上传人:小飞机 文档编号:6511209 上传时间:2023-11-08 格式:PPT 页数:42 大小:1.81MB
返回 下载 相关 举报
Linux基础PPT课件第八章源代码控制管理工具Subv.ppt_第1页
第1页 / 共42页
Linux基础PPT课件第八章源代码控制管理工具Subv.ppt_第2页
第2页 / 共42页
Linux基础PPT课件第八章源代码控制管理工具Subv.ppt_第3页
第3页 / 共42页
Linux基础PPT课件第八章源代码控制管理工具Subv.ppt_第4页
第4页 / 共42页
Linux基础PPT课件第八章源代码控制管理工具Subv.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《Linux基础PPT课件第八章源代码控制管理工具Subv.ppt》由会员分享,可在线阅读,更多相关《Linux基础PPT课件第八章源代码控制管理工具Subv.ppt(42页珍藏版)》请在三一办公上搜索。

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-1-

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

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

4、案反映了访问方法。,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提供了一组API,可以供其他语言直接调用。,8-2-1使用上的主要不同,Subve

6、rsion的版本号是所有文件共用一个版本号,每一个个文件的改变都会导致总体版本号发生改变;Subversion的分支/标签都以文件夹的方式显示,而不象CVS只是一个独立的标签;当作为Apache的Web DAV使用时,Subversion 使用Http协议传输,可以直接在Web浏览器中浏览;,8-2-2 TortoiseSVN是什么?,TortoiseSVN是Subversion版本控制系统的一个免费开源客户端是一个shell扩展程序,与Windows Explorer整合在一起在Windows Explorer里面单击右键就可以操作相关菜单其它Subversion客户端Subversion命

7、令行程序RapidSVN:独立的Windows程序,最新版本0.92,仍处于Beta阶段;AnkhSVN:和Visual Studio集成,可以在Visual Studio中使用Subversion,仍处于开发过程中,最新版本0.60 Beta;功能尚不完善。Web浏览器:ViewCVS/WebSVN等,网络程序,可在浏览器中查看SVN信息;,8-3-1 Windows平台Subversion服务器端的安装配置,安装程序从http:/subversion.tigris.org获取;在Windows平台直接执行安装程序进行安装;在服务器端创建文件仓库(两种安装方式)(1)mkdir c:svn-

8、repos svnadmin create c:svnrepos(2)使用TortoiseSVN自动生成4.启动服务器方式一:类似CVS,作为独立服务运行,安装完成后运行如下命令运行Subversion:start svnserve-daemon-root d:svn-repos可以使用第三方的工具将Subversion添加为Windows的Service(参见http:/clanlib.org/mbn/svnservice/);方式二:将Subversion添加为Apache的Web DAV运行;这种方式对于Subversion的控制和管理比较方便,但是配置相对比较麻烦。建议:个人使用或者对

9、权限控制等要求不高时以独立服务的方式使用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 c:repos displayname=Subversion depend=tcpip start=auto删除服务sc delete

10、svnservice,8-3-2 Subversion客户端TortoiseSVN的安装和设置,获取安装文件 从http:/下载;安装直接安装,安装完成后会自动集成在资源管理器的右键菜单中;完成后,提示要重启计算机,选择“否”,运行中文语言包程序完成后再重启计算机 注意事项:安装时“ASP_HACK”的选择,如果做ASP.Net开发,安装时一定要选择该项。设置主要设置:语言全局忽略模式差异查看工具和合并工具文件叠加图标右键菜单(外观样式),8-4-1 Subversion的基本概念,Repository(文件仓库)Workcopy(工作复本)Checkout(检出)Commit(提交或检入)U

11、pdate(更新),8-4-2 Subversion的基本操作,主要操作:把本地文件添加到文件仓库中-初始文件导入从SVN文件库中取出代码-检出更新本地文件文件/目录改名把文件和目录添加到文件仓库中从SVN中删除文件 提交修改后的文件-检入,初始文件导入,svn import-m importing bb.svn:/192.168.1.112/bb,从SVN文件库中取出代码,功能:从SVN服务器中取出已有的代码,可以取出当前的最新代码或指定标签/分支的代码。操作:在资源管理器中点击鼠标右键,选择“SVN 取出”;输入要取出代码的文件库的URL地址;默认是取出主版本的代码,如果需要取出指定标签的

12、代码,则在“版本”Group中指定;版本号的意义说明(非强制):主版本为1.x,x表示该文件的第x次修改;分支版本为1.x.y.z,表示该分支是在第1.x个主版本上建立的1.x.y分支,在该分支上进行了z次修改;,worksvn checkout svn:/192.168.1.112/aa,worksvn checkout svn:/192.168.1.112/aa anew,worksvn checkout-r 4 svn:/192.168.1.112/aa a4,worksvn info aa,更新本地文件,功能:获取其他用户对文件进行的修改,与自己对文件进行的修改进行合并,保证本地的文件

13、总是最新的。操作:选中要更新的文件或文件夹,在右键菜单中选择“更新”;在资源管理器的空白处进行上述操作则对当前目录进行更新。更新时对不同的人所做的修改会自动合并,如果无法自动合并则会发生冲突,需要手工用文件比较工具进行合并。说明:在团队开发时,更新是一件很重要的工作,可以保持团队成员之间的工作内容一致,因此要注意经常更新自己的工作复本,以保证自己能够获得最新的修改内容。,worka4svn update,对文件/目录进行改名,功能:对文件/目录进行Subversion控制下的改名操作,用此功能对文件/目录进行改名后文件仍处于SVN的控制下并保持连续的变更信息。操作:在资源管理器中选中要改名的文

14、件,右键“TortoiseSVN重命名”;输入新文件名,点击“确定”;对文件的重命名将在提交后起作用。注意:必须使用Subversion的重命名功能,直接在资源管理器中进行重命名SVN无法监控。,对文件/目录进行改名,rootyft aa#svn move b.txt a.txtrootyft aa#svn commit-m Renamed b.txt to a.txt,把本地文件添加到文件仓库中,功能:将客户端的文件添加到文件库中,使其接受SVN的控制。操作:在资源管理器中打开取出到本地的工作复本,选中要添加的文件,点击鼠标右键,在弹出菜单中选择“SVN 添加”;在弹出窗口中选择要添加的文件

15、;点击OK,完成添加操作。,把本地文件添加到文件仓库中,rootyft aa#mkdir timelibrootyft aa#svn add timelib/,从SVN中删除文件,功能:将已经被废弃的文件中从SVN中删除;操作:在工作复本中选中要删除的文件/文件夹,在右键菜单中选择“TortoiseSVN”“删除”;删除后需要提交才能够生效;说明:文件被删除后,该文件的所有修改历史仍然保存在SVN服务器中,以后仍然可以获得该文件的修改历史。workaasvn delete b.txtworkaasvn commit-m Delete a.txt,提交新添加的和修改后的文件,功能:将在客户端的工

16、作复本中对文件进行的修改提交到服务器中,使修改正式生效;提交后其他人即可获取你所作的修改。操作:选中进行了修改的文件,或选择某个目录(此时对该目录下包括子目录所有新添加的或进行过修改的文件进行提交操作);在在选中的文件上点击鼠标右键,选择“SVN提交”执行提交操作;在工作复本的文件夹的空白处点击鼠标右键和选中当前目录执行提交的效果一样。workaasvn updateworkaasvn commit-m check in message,其他技巧,导出功能:使用此功能获取一个没有SVN控制信息的工作复本;清理:当Subversion操作中断时,会有一些残留的操作信息保留在工作复本中,这时需要进

17、行清理才能够重新进行工作;生成补丁文件:可以将自己所作的修改以补丁文件的方式交给他人,对于只有匿名访问的代码可以以这种方式提交修改;在资源管理器中显示文件的SVN信息:通过定制资源管理器的显示字段控制;,在项目开发过程中的使用(一),管理员安装、配置SVN服务器,设置用户信息,创建文件库、模块;用户开始在SVN上工作,并随时将新的工作结果提交到SVN文件库上;同时用户随时更新自己本地的工作复本,以获得其他人的修改;当开发工作进行到一定阶段(里程碑)要发布版本(包括测试版本)时,在SVN中创建标签,标识当前发布版本的名称;如果有每日构建过程,可以按照日期每天创建一个标签;,在项目开发过程中的使用

18、(二),创建标签和开发互不干涉,开发工作可以继续进行;当已发布的版本发现Bug时,可以从SVN中获取各次发布的版本进行比较,以确定是在什么版本引入的Bug;如果正在开发新版本时,发现旧版本存在Bug,可以在旧版本的基础上创建分支,在分支上修改旧版本的Bug,当旧版本上的Bug修改完成后,可以将该分支上的修改合并到主版本上来;从版本控制的角度来看,系统的开发过程就是不断地重复以上的过程;,SVN使用中的常见问题,提交时提示文件已经被修改,需要更新;原因:多人同时修改同一文件,在提交前其他人已经抢先提交到SVN服务器中,导致该错误;解决方法:对工作复本中的文件进行更新即可。更新时提示文件发生冲突;

19、原因:多人同时修改同一文件的同一部分,SVN无法自动进行合并,导致该错误;解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。,使用SVN应该,经常更新:由于文件可能有多个人修改,应该经常更新你的工作拷贝中的文件,这样能降低发生冲突的可能性;提交前先在本地进行测试:不允许将有错误的文件提交到服务器上;提交时一定要写备注:备注有助于其他人(包括三个月后的你自己)理解你对文件所做的修改;提交文件时注意要提交一项改动所对应的所有文件修改:如ASP.Net开发中一个改动可能同时涉及.aspx文件、.aspx.cs文件和.resx文件,需要同时提交;对于每一个发布的版本都要建立标签:当用户

20、告诉你发生某个问题时,你可以迅速地追踪到问题是在哪个版本引入的,如果有每日构建,甚至可以每天都建立一个标签;使用有意义的标签名/分支名;,使用SVN不应该,不提交自己的工作内容;提交时不写备注;不使用标签和分支;使用无意义的标签/分支名称;对不需要提交的文件(如临时文件)也提交到SVN中;,SVN的缺点,整个文件库共用一个版本号会造成大多数CVS使用者的困惑;一个问题:SVN的标签似乎没有和Branch做区别,也允许取出、编辑,这样做的原因不明。,参考资料,官方资料(免费电子书):使用Subversion进行版本控制(Version Control with Subversion):http:

21、/svnbook.red-后台服务:http:/www.shengfang.org/blog/p/0112subversionSVNServicesvnserve.phpTortoiseSVN使用手册:TortoiseSVN自带的帮助文件Google:绝大部分问题在Google上都可以找到答案,参考网站:,Subversion官方站点:http:/subversion.tigris.orgSubversion中文站点http:/TortoiseSVN:http:/RapidSVN:http:/AnkhSVN:http:/,Page 40/40,实验,实验一:,Page 41/40,实验1,注意事项提示1:,Page 42/40,实验2,注意事项提示1:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号