- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容简介 1 Subversion简介 2 版本控制的基本原理 3 Subversion基础 4 Subversion基本工作流程及基本操作 CheckOut,Commit,Update,Status 5 Subversion高级操作 Branch/Tag,Merge 6 Subversion其他操作(演示) 7 常见Subversion的GUI客户端使用(演示) 1 Subversion简介 Subversion的作用 Subversion的历史 Subversion的特性 Subversion的架构 Subversion的作用 一个自由,开源的版本控制系统 一个通用系统,不是简单的一个SCM系统 以替代CVS为目标 可以管理任何类型文件,并且追踪变更 不具有某些和开发紧密结合的特性,如支持某种特定的编程语言,集成构建工具等 应用:版本管理,网络硬盘?? 网址: Subversion的历史 2000年,CollabNet公司开始寻找CVS的替代产品 2月,这个公司联系了Open Source Development with CVS的作者Karl Fogel,他同意为这个项目工作。同时,他还联系了其他几个人一起开发这个新系统 3月,Subversion开始详细设计和编码 2001年8月31日,Subversion第一个完整版本问世 经过1.0,1.1,1.2直到现在的1.4.3版 Subversion的特性(和CVS比较) 和CVS的相似性 目录的版本化 更加好的文件版本管理(例如对文件拷贝,重命名的处理) 提交的原子性 元数据的版本化 可选的网络层 对文本文件和二进制文件一致的差异比较算法 高效的分支(branch)和标签(tag)操作 良好的可维护性 Subversion的架构 2 版本控制的基本原理 客户/服务器架构的版本控制简述 版本控制的数据共享模型 数据共享的问题 锁定-修改-解锁方案 拷贝-修改-合并方案 冲突及解决 两种方案的对比及选择 Subversion的实现 客户/服务器架构的版本控制 版本库(Repository):按照一定格式存储了所有数据,包括文件和目录 经过授权的客户端可以连接到版本库,读写库中的文件 版本库和普通文件服务器的不同:版本库会记录每一次的更改,所以,客户端可以任意查询更改的历史。例如:ApplicationContext.java的1451版和1450版相比修改了什么?谁作的修改?什么时候作的修改?等等 版本控制数据共享模型 版本控制系统的核心任务:协作编辑和数据共享 基础问题:怎样允许用户共享信息,并且不会因意外而互相干扰? 数据共享问题的产生 解决办法 数据共享问题 解决方案1——锁定-解锁方案 锁定-解锁方案的问题 可能导致管理问题,如长期锁定文件不放 会导致不必要的顺序开发 可能导致死锁 例如Sally和Harry都需要修改plugin_mgr.c和plugin_mgr.h,两者互相关联,Sally锁定了.c文件而Harry锁定了头文件,就会进入死锁状态 解决方案2——拷贝-修改-合并方案 (续图……) 冲突(Conflict)及解决(Resolve) 冲突的产生:冲突是随着拷贝-修改-合并方案的产生而带来的问题。两个开发者使用拷贝-修改-合并方案编辑同一个文件,并且两人的修改发生了交叠时就发生了冲突 冲突的解决:当冲突发生时,开发者会看到一对冲突的修改结果,通常情况下,必须让引起冲突的两个人商议之后,手动选择保留一组更改。在这里,版本控制系统只能提示冲突的发生而无法给出解决建议 冲突的预防:增加开发者的交流可以最大限度减少冲突的发生,但是不可能杜绝冲突 后面可以看到冲突的具体例子以及解决办法 两种方案的对比及选择 虽然锁定-解锁方案有很多的弊端,但在一些情况下仍然是必须的;虽然拷贝-修改-合并模型能解决大多数问题,但它也不是万能的 比较:文本文件和二进制文件的特点 选择:拷贝-合并模型假定文件是可以通过上下文合并的。通常情况下,文本文件(例如源代码以及用纯文本,HTML,TeX等格式保存的文档)因为其内部结构直观可知,容易理解上下文,所以用拷贝—合并方案较好。而二进制文件(例如用Microsoft Word格式,PDF等格式保存的文档及图片,声音,可执行文件,库等)内部结构复杂,且不容易理解更改处的上下文,采用锁定-解锁方案较好 Subversion的实现 Subversion主要采用拷贝-修改-合并模型,配合锁定-解锁模型管理数据的共享 3 Subversion基础 基本概念 工作拷贝(Working Copy) 修订版本(Revision) 文件状态 混合修订版本的工作拷贝 工作拷贝(Working Copy) 工作拷贝是本地机器的一个普通的目录
文档评论(0)