SVN版本控制软件教程.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SVN版本控制教程 一、版本控制 1.1为什么需要版本控制软件 参与过2人以上的软件项目开发? 开发过程中程序是否具有版本控制? 如果不使用版本控制还会出现什么问题? 1.2没有版本控制会怎样? 代码管理混乱 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易引发BUG 难于追溯问题代码的修改人和修改时间 难于恢复至以前正确版本 无法进行权限控制 项目版本发布困难 1.3 什么是版本控制 版本控制透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号。这种方法是工程图(engineering drawings)维护(maintenance)的标准做法,它伴随着工程图从图的诞生一直到图的定型。一种简单的版本控制形式,例如,赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推等等。 1.4主要知识点 SVN简介 SVN服务器端与客户端的使用 SVN与第三方 Eclipse 整合 SVN与第三方 Apache 整合 SVN版本控制的前身CVS简介 SVNKit简介 二、SVN简介 2.1 什么是SVN Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件 CVS,在 CVS的功能的基础上有很多的提升同时也能较好的解决 CVS 系统的一些不足。 2.2 SVN服务器运行原理图 2.3 SVN服务器运行方式 独立服务器方式: svnserve 借助Apache方式 mod_dav_svn 2.4 Subversion 组件 服务器组件(管理员使用) svnadmin:用来调整和修正svn档案库的工具 mod_dav_svn:给 Apache-2.X 网页服务器使用的外挂模块; 可以用来将你的档案库透过网络对外开放, 以供他人进行存取。 svnserve:一个独立的服务器程序, 可以作为服务器行程执行, 或是被 SSH 启动; 另一个让你的档案库在网络上可供其它人存取的方法. 客户端组件(用户使用) svn:命令行客户端程程序,这是用来管理数据的主要工具。 2.5 subversin 的优点 Subversion:是一种开放源码的全新版本控制系统。是新一代的版本控制工具; 由于其优于CVS的一些特点,得到了越来越多人的关注和使用; 支持可在本地访问或通过网络访问的数据库和文件系统存储库; 提供了常见的比较、修补、标记、提交、恢复和分支等功能; Subversion 还增加了追踪移动和删除的能力; 此外,它支持非 ASCII 文本和二进制数据; Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域; 2.6 SVN版本数据存储方式 BDB (Berkeley DB):数据库方式 FSFS:文件方式(推荐)s 2.7 svn版本控制策略 2.7.1 其他版本的控制策略(vss) 2.7.2svn的控制策略 1锁定-修改-解锁 方案 许多版本控制系统使用锁定-修改-解锁机制解决这种问题,在这样的模型里,在一个时间段里版本库的一个文件只允许被一个人修改。例如大家以前用的 VSS,就是采用的这种方案。 锁定-修改-解锁模型的优点:能非常好的保证版本库中所有文件的一致性,能避免大部分的冲突。但锁定-修改-解锁模型有一点问题就是限制太多,经常会成为用户的障碍: 锁定可能导致管理问题。 锁定可能导致不必要的线性化开发。 锁定可能导致错误的安全状态。 2拷贝-修改-合并 方案 Subversion,CVS和一些版本控制系统使用拷贝-修改-合并模型,在这种模型里,每一个客户联系项目版本库建立一个个人工作拷贝——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作拷贝,最终,各个私有的拷贝合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 拷贝-修改-合并模型感觉有一点混乱,但在实践中,通常运行的很平稳, 用户可以并行的工作,不必等待别人, 当工作在同一个文件上时,也很少会有交迭发生,冲突并不频繁,处理冲突的时间远比等待解锁花费的时间少。 最后,一切都要归结到一条重要的因素:用户交流。当用户交流贫乏,语法和语义的冲突就会增加,没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突,所以没有任何证据能够承诺锁定系统可以防止冲突,实践中,锁定除了约束了生产力,并没有做什么事。 拷贝-修改-合并有一个很致命的缺点,就是对那些无法合并的二进制文件管理起来困难。因此,Subversion 也提供了锁定-修改-解锁的方案

文档评论(0)

zj182322392 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档