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

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

《Linux基础PPT课件第八章源代码控制管理工具Subv.ppt》由会员分享,可在线阅读,更多相关《Linux基础PPT课件第八章源代码控制管理工具Subv.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Page 1/40第七章内容回顾第七章内容回顾GCC是什么什么是GDB第八章第八章源代码控制管理工具源代码控制管理工具源代码控制管理工具源代码控制管理工具预习检查预习检查什么是版本控制什么是Commit3Page 4/40本章目标本章目标能够:理解和掌握能够:理解和掌握SubversionSubversion的概念及配置的概念及配置能够:会使用能够:会使用TortioseSVNTortioseSVN客户端工具客户端工具Page 5/40本章结构本章结构什么是版本控制什么是版本控制 源代码控制管理源代码控制管理Unix/Linux的起源与发展的起源与发展Linux在企业中的应用在企业中的应用Li

2、nux的安装方式的安装方式系统安装过程系统安装过程Linux的图形界面的图形界面服务器和客户端服务器和客户端Unix/Linux版本版本Subversion和和TortoiseSVN磁盘分区磁盘分区文件系统和目录结构文件系统和目录结构SubversionSubversion的基本操作的基本操作8-1-1 什么是版本控制?什么是版本控制?版本控制就是对在软件开发过程中所创建的配置对象的不同版本进行管理,保证任何时候都能取到正确的版本以及版本的组合。摘自贝尔实验室配置管理的精髓版本控制(Version Control)是软件配置管理中的重要一环主要功能:记录开发过程的每一次修改,让开发工作可以随时

3、检查过往的历史和获取正确的版本;是系统的“成长记录”。8-1-2为什么要使用版本控制?为什么要使用版本控制?在协同开发过程中,确保能够:保存所有更改的记录,防止改动丢失能够快速回复到特定版本的状态能够获取其他成员的更改在单独开发时,上述的前两点对于自己的开发过程管理也有莫大的好处。8-1-3 版本控制的方式版本控制的方式两种典型的方式:Lock-Modify-Unlock方式和Copy-Modify-Merge方式,分别以Visual Source Safe和CVS为代表Lock-Modify-Unlock方式:一个文件同一时刻只能有一个人进行修改,可防止冲突,但不利于合作开发;Copy-Mo

4、dify-Merge方式:可以多人同时修改一个文件,会有冲突的情况,更强调开发人员的交流,对于合作开发比较合适;8.1.4版本控制的几个术语版本控制的几个术语 项目仓库工作拷贝导入检出导出提交更新 RepositoryNetworkWorkingcopyWorkingcopyCheck out,updatecommitFredWilmaCheck out,updatecommit8.1.4 版本库访问版本库访问 URL Subversion 可以通过多种方式访问本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个 URL,URL 方案反映了访问方法。8-2-1 Subversi

5、onSubversion是什么?是什么?是什么?是什么?Subversion Subversion 是一个自由的、开放源码的版本控制系统是一个自由的、开放源码的版本控制系统,拥有CVS的大部分特征,并在CVS的基础上有更强的扩展,用来代替 CVS 系统。单词“Subversion”的意义u字面上的意义:Sub+Version,标识Subversion是一个版本控制系统。u英语中有Subversion这个单词,意思是“颠覆”:Subversion要颠覆CVS的地位。它可以管理各个时刻的文件和目录它可以管理各个时刻的文件和目录 。Subversion Subversion 将文件存放在将文件存放在

6、repositoryrepository库中。这个仓库非常类似于一个普通的文库中。这个仓库非常类似于一个普通的文件服务器,只是它还可以记录文件和目录曾经做过的每一次变更件服务器,只是它还可以记录文件和目录曾经做过的每一次变更 。可把版本控制系统比作一种可把版本控制系统比作一种“时间机器时间机器”。Subversion Subversion 的仓库可以通过网络来访问,允许不同的用户在不同的计算机上使的仓库可以通过网络来访问,允许不同的用户在不同的计算机上使用用 。不同的使用者可以进行协同工作不同的使用者可以进行协同工作 。而且所有工作都是有记录的,如果有错只要。而且所有工作都是有记录的,如果有错

7、只要撤销就可以。撤销就可以。它是一个通道,可以管理任何计算机中的文件系统。它是一个通道,可以管理任何计算机中的文件系统。需要得到版本管理规范的支持需要得到版本管理规范的支持8-2-1 CVS和和Subversion的比较的比较SubversionSubversionCVSCVS版本号管理方式版本号管理方式所有文件使用同一版本号每个文件有单独的版本号运行方式运行方式多种运行方式:1.作为操作系统的Demon(如Window Service)独立运行;2.作为开源Web服务器Apache的Web DAV运行;作为操作系统的Demon(如Window Service)独立运行传输协议传输协议file

8、:/,http:/,https:/,svn:/,svn+ssh:/参见CVSRoot的定义对目录的版本管理对目录的版本管理对目录也同样进行版本管理无文件改名文件改名支持需要删除原文件,重新添加改名后的文件,改名后原文件的修改历史丢失。事务性提交事务性提交是否8-2-1 Subversion与与CVS相比改进的地方相比改进的地方统一的文件版本目录控制:在Subversion中目录的变更也是受控的支持文件复制、重命名事务性的提交高效的分支和标记扩展能力:Subversion提供了一组API,可以供其他语言直接调用。8-2-1使用上的主要不同使用上的主要不同Subversion的版本号是所有文件共用

9、一个版本号,每一个个文件的改变都会导致总体版本号发生改变;Subversion的分支/标签都以文件夹的方式显示,而不象CVS只是一个独立的标签;当作为Apache的Web DAV使用时,Subversion 使用Http协议传输,可以直接在Web浏览器中浏览;8-2-2 8-2-2 TortoiseSVNTortoiseSVN是什么?是什么?是什么?是什么?TortoiseSVNTortoiseSVN是是SubversionSubversion版本控制系统的一个免费开版本控制系统的一个免费开源客户端源客户端是一个是一个shellshell扩展程序,与扩展程序,与Windows Explorer

10、Windows Explorer整合在一整合在一起起在在Windows ExplorerWindows Explorer里面单击右键就可以操作相关菜里面单击右键就可以操作相关菜单单其它其它SubversionSubversion客户端客户端Subversion命令行程序RapidSVN:独立的Windows程序,最新版本0.92,仍处于Beta阶段;AnkhSVN:和Visual Studio集成,可以在Visual Studio中使用Subversion,仍处于开发过程中,最新版本0.60 Beta;功能尚不完善。Web浏览器:ViewCVS/WebSVN等,网络程序,可在浏览器中查看SVN

11、信息;8-3-1 Windows平台平台Subversion服务器端的安装配置服务器端的安装配置1.安装程序从http:/subversion.tigris.org获取;2.在Windows平台直接执行安装程序进行安装;3.在服务器端创建文件仓库(两种安装方式)(1)mkdir c:svn-repos svnadmin create c:svnrepos (2)使用TortoiseSVN自动生成4.启动服务器l方式一:类似CVS,作为独立服务运行,安装完成后运行如下命令运行Subversion:start svnserve-daemon-root d:svn-repos可以使用第三方的工具将S

12、ubversion添加为Windows的Service(参见http:/clanlib.org/mbn/svnservice/);l方式二:将Subversion添加为Apache的Web DAV运行;这种方式对于Subversion的控制和管理比较方便,但是配置相对比较麻烦。建议:个人使用或者对权限控制等要求不高时以独立服务的方式使用Subversion,当团队开发时使用Web DAV的方式使用Subversion。8-3-1配置用户和权限配置用户和权限 进入项目仓库的conf目录修改svnserve.conf和passwd文件8-3-1 以服务形式运行以服务形式运行svnserve以服务形

13、式运行svnserve 安装服务sc create svnserve binpath=C:Program Filessvnservesvnserve.exe-service-root c:repos displayname=Subversion depend=tcpip start=auto删除服务sc delete svnservice8-3-2 Subversion8-3-2 Subversion客户端客户端TortoiseSVNTortoiseSVN的安装和设置的安装和设置获取安装文件 从http:/下载;安装直接安装,安装完成后会自动集成在资源管理器的右键菜单中;完成后,提示要重启计算

14、机,选择“否”,运行中文语言包程序完成后再重启计算机 注意事项:安装时注意事项:安装时“ASP_HACK”的选择,如果做的选择,如果做ASP.Net开发,安装时一定开发,安装时一定要选择该项。要选择该项。设置主要设置:语言1.全局忽略模式2.差异查看工具和合并工具3.文件叠加图标4.右键菜单(外观样式)8-4-1 Subversion的基本概念的基本概念Repository(文件仓库)Workcopy(工作复本)Checkout(检出)Commit(提交或检入)Update(更新)8-4-2 Subversion的基本操作的基本操作主要操作:主要操作:把本地文件添加到文件仓库中 -初始文件导入

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

16、为1.x,x表示该文件的第x次修改;分支版本为1.x.y.z,表示该分支是在第1.x个主版本上建立的1.x.y分支,在该分支上进行了z次修改;worksvn checkout svn:/192.168.1.112/aaworksvn checkout svn:/192.168.1.112/aa anewworksvn checkout-r 4 svn:/192.168.1.112/aa a4worksvn info aa更新本地文件更新本地文件功能:获取其他用户对文件进行的修改,与自己对文件进行的修改进行合并,保证本地的文件总是最新的。操作:1.选中要更新的文件或文件夹,在右键菜单中选择“更新

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

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

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

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

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

22、SVN中创建标签,标识当前发布版本的名称;如果有每日构建过程,可以按照日期每天创建一个标签;在项目开发过程中的使用(二)在项目开发过程中的使用(二)创建标签和开发互不干涉,开发工作可以继续进行;当已发布的版本发现Bug时,可以从SVN中获取各次发布的版本进行比较,以确定是在什么版本引入的Bug;如果正在开发新版本时,发现旧版本存在Bug,可以在旧版本的基础上创建分支,在分支上修改旧版本的Bug,当旧版本上的Bug修改完成后,可以将该分支上的修改合并到主版本上来;从版本控制的角度来看,系统的开发过程就是不断地重复以上的过程;SVN使用中的常见问题使用中的常见问题提交时提示文件已经被修改,需要更新

23、;原因:原因:多人同时修改同一文件,在提交前其他人已经抢先提交到SVN服务器中,导致该错误;解决方法:解决方法:对工作复本中的文件进行更新即可。更新时提示文件发生冲突;原因:原因:多人同时修改同一文件的同一部分,SVN无法自动进行合并,导致该错误;解决方法:解决方法:对工作复本中的文件和服务器的文件进行比较,手工合并即可。使用使用SVN应该应该经常更新:由于文件可能有多个人修改,应该经常更新你的工作拷贝中的文件,这样能降低发生冲突的可能性;提交前先在本地进行测试:不允许将有错误的文件提交到服务器上;提交时一定要写备注:备注有助于其他人(包括三个月后的你自己)理解你对文件所做的修改;提交文件时注

24、意要提交一项改动所对应的所有文件修改:如ASP.Net开发中一个改动可能同时涉及.aspx文件、.aspx.cs文件和.resx文件,需要同时提交;对于每一个发布的版本都要建立标签:当用户告诉你发生某个问题时,你可以迅速地追踪到问题是在哪个版本引入的,如果有每日构建,甚至可以每天都建立一个标签;使用有意义的标签名/分支名;使用使用SVN不应该不应该不提交自己的工作内容;提交时不写备注;不使用标签和分支;使用无意义的标签/分支名称;对不需要提交的文件(如临时文件)也提交到SVN中;SVN的缺点的缺点整个文件库共用一个版本号会造成大多数CVS使用者的困惑;一个问题:SVN的标签似乎没有和Branc

25、h做区别,也允许取出、编辑,这样做的原因不明。参考资料参考资料官方资料(免费电子书):使用Subversion进行版本控制(Version Control with Subversion):http:/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:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁