如何使用SVN进行版本控制.ppt_第1页
如何使用SVN进行版本控制.ppt_第2页
如何使用SVN进行版本控制.ppt_第3页
如何使用SVN进行版本控制.ppt_第4页
如何使用SVN进行版本控制.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、使用SVN的版本控制、李洋、概要、一、Subversion概要二、版本控制的基本知识三、Subversion常用功能四、客户端工具TortoiseSVN五、SVN使用中常见的问题,一、Subversion版本控制是信息的变更作为许多程序员的主要工具之一版本控制软件的应用不仅限于软件开发领域,只要人们使用计算机来管理频繁变更的信息,就必须使用版本控制工具来协作,Subversion是自由开源的管理所有时间点的文件和目录,Subversion将文件存储在存储库中。 此仓库与普通的文件服务器非常相似,但是对文件和目录所做的每个更改都记录Subversion,将数据恢复到以前的版本,检查数据修改的历史

2、记录,将版本控制系统称为“时间机”,Subversion Subversion的仓库可以通过网络访问,不同的用户可以在不同的计算机上使用。 各种用户可以进行协作。 另外,所有的工作都被记录下来,有错误的话只要取消就可以了。 Subversion是版本控制系统,而不是软件配置管理系统(SCM )。 这是一个通用系统,可以管理任何类型的文件集。 这是一个通道,可以管理任何计算机中的文件系统。 Subversion的历史、CVS有明显的限制和功能上的不足。 从2000年开始,CollabNet公司代替CVS着手开发新的版本管理系统。 Karl Fogel和Jim Blandy是CVS开发者,加入了开

3、发subversion。 他们使Subversion具有CVS的特性,保持了同样的开发模式,但避免了CVS的明显缺陷。 Subversion于2001年8月进入了“自检”阶段。Subversion的特征、目录控制CVS只能跟踪一个文件的历史记录,Subversion实现虚拟的托管文件系统,能够跟踪目录整体的变更。 真正的版本历史记录不支持复制、重命名文件等操作,因为CVS仅记录文件的版本信息。 在Subversion中,可以添加、删除、复制和重命名文件和目录。 Subversion的特征是,通过将更改集提交到原子、完全提交到仓库还是不进行更改,避免不完全提交更改。 每个受管元数据文件和目录都有

4、一组相应的属性。 可选的网络层Subversion仓库访问是抽象概念,可以帮助其他用户实现新的网络访问机制,并且Subversion可以作为外部模块插入到Apache HTTP服务器中。 Subversion的特征,一致的数据处理Subversion使用二进制比较算法来表示文件之间的差异。 高效的分支和标记分支和标记开销与项目规模没有直接关系。 Subversion在创建分支和标记时以类似于“连接”的方式复制项目。 可扩展性通过c的共享库中包含的一组适当修改的APIs来实现,使维护变得容易。 Subversion体系结构、Subversion体系结构和典型的client/server模型体系结

5、构,它们在系统末端存储所有受控数据,并且在其他应用程序和语言中也易于使用另一个是Subversion客户端程序,管理受管理数据的一些本地映射(称为“工作副本”)。 两端之间有多个通过不同仓库接入层(RA )的通道。 其中一些通道是用于使用计算机网络和访问Subversion仓库的服务。 有的完全绕过网络,直接操作仓库。、Subversion的组件、Svn命令行的客户端程序Svnversion是本地工作副本的状态(由当前文件的修订号指示) 报告的程序Svnadmin用于创建或修复仓库的工具svndumpfilter存储库程序,Subversion的组件mod_dav_svn Apache服务器的

6、插件模块。 使其他用户能够通过网络访问此仓库的svnserve的自定义独立Subversion服务程序。 可以作为常驻进程运行,也可以通过SSH调用。 使仓库可供其他用户通过网络访问的另一种常用组件是svn和svnadmin,图形客户端实现svn和svnadmin的功能。 访问存储库的某些方法、样式访问方式file:/直接从本地磁盘访问存储库3358与通过WebDAV协议访问Apache服务器访问存储库https:/和http:/相同,但由/svnserve服务定制的协议svn SSH:/和svn:/相同,但是由ssh封装的存储库URL解析、Subversion管理的所有目录file 3358

7、59.66 帐户/中继/,协议,主机, reen存储内部数据的db目录:所有版本控制数据存储文件hooks目录:用于放置hook脚本文件的目录locks目录记录文件库部署的版本号conf目录:此仓库访问帐户、权限等)、二、版本控制基础、“仓库”(The Repository )版本控制模型的生产中subversionsubversion/cvs的核心是用于存储数据的中央仓库。 中央仓库使用常见的文件和目录层次树来存储信息。 许多客户端连接到中央仓库,可以读取和写入文件。 客户端可以通过写入文件与其他用户共享,也可以读取其他客户端写入的文件。 典型的客户/服务器系统模型是:仓库、仓库、仓库是文件

8、服务器,如图所示,不是通常的。 Subversion仓库可以记录写入仓库的所有更改。 这些更改包括对每个文件的所有更改,包括添加文件、删除文件、重组文件和目录,以及对目录本身的更改。 这些功能使得Subversion仓库比普通文件服务器更加特殊。 客户端也可以读取文件和目录以前的某个时间点的状态。 版本控制系统的核心:数据修改历史记录和跟踪、版本控制模型、版本控制系统的核心任务是使数据的协同处理和共享成为可能。 但是,不同的系统使用不同的战略来实现这个目标。 文件共享问题:如何使系统能够共享信息而不会引起用户意外的干扰?锁定修改解锁方案修改联合方案、锁定修改解锁方案,许多版本控制系统使用“锁定

9、修改解锁”模型来解决此问题。 例如,VSS就是这样的系统,仓库在特定时刻只能修改一个文件。 这种做法的问题是过于严格,经常阻止用户的使用。 锁定可能会导致管理问题。 锁定会导致不必要的串行操作。 锁定时,错误的安全状态、文件依赖关系、修改合并方案的副本、Subversion、CVS等版本控制系统可能使用“复制修改合并”模型来代替锁定。 每个用户的客户端软件从中央仓库创建个人工作副本仓库中的文件和目录的本地映射。 用户可以并行工作,修改手中的私人复印件。这些私人拷贝被整合为新版本。 版本管理系统往往需要合并,但最终操作者本身必须承担正确进行合并作业的责任。 如果复制并修改“冲突”(conflic

10、t )和“合并模型”(merge model ),则解决冲突问题所需的时间远少于锁定系统所浪费的时间。 没有强迫用户进行完美交流的系统,没有能够检测出意义上的冲突来解决冲突的系统是用户交流,虽然模型选择、锁定-修改-解锁模型被认为不利于合作,但有时锁定较好。 复制-修改-合并模型假定可以根据上下文合并文件,但是对于二进制格式(如图像和声音),用户必须按顺序修改文件。 如果没有线性接入,很多工作最终会中止。 SVN还支持锁定-修改-解锁模型。 实际的Subversion、工作副本Working Copies修订版混合版本、工作副本和一个Subversion的工作副本实际上是本地系统的典型文件目录

11、树。 可以任意编辑这些文件。 对于源文件,还可以照常进行编译。 工作的复印件是你的私人工作区。 如果没有明确的要求,Subversion不会结合别人的修改,也不会让别人看到修改。 修改工作副本、工作副本中的文件并确信修改正确后,可以将这些修改发布给同一项目中的其他员工。 Subversion提供了用于将文件写入仓库的命令。 工作副本还包含附加文件。 它们由Subversion创建和维护,并用于帮助完成这些命令。 最常见的情况是每个目录都包含名为. svn的子目录。 此目录也称为工作副本管理目录。 Subversion的仓库包含多个项目,每个项目都是仓库目录的子目录。 这使用户的工作副本也对应于

12、仓库中的特定子目录。 SVN修订版和svn commit操作可以将任意数量的文件和目录更改发布作为单独的原子事务处理。 在仓库中,每次提交都被视为原子事务。 每次仓库接受提交时,都会在仓库中的文件系统目录中创建一个称为修订版本的新状态。 每个修订版都有唯一的自然数,每个修订版的数字都比以前大。 刚创建的仓库的第一个版本是0,它只包含一个空根目录。 Subversion的修订号不是针对独立的文件,而是针对整个目录树。 如图所示:修订版设想修订版编号的数列,从0向左向右延伸。 每个修订号对应于图片下方的目录树,每个目录树是每个提交后的仓库快照。 混合版本,一般而言,Subversion正在尽量灵活

13、地努力。 一个常见的灵活性是在工作副本中包括具有混合修订号的功能。 完成向仓库提交后,刚提交的文件和目录有最新的修订编号,其他文件中没有。 Subversion/cvs/vss比较、三、Subversion常用功能讲座、基本术语主要是SVN客户端工具的常用命令通过本部分的学习,所有任务都可以进行操作,日常使用Subversion版本管理系统对于存储库接受的每个更改,都会生成一个新的修订HEAD :存储库的最新版本BASE :工作副本中项目的修订号。 如果此版本在本地进行了更改,则BASE版本是未在本地进行更改的版本。分支标签(tags )合并、Subversion客户端工具和命令行工具是命令行

14、方法,主要命令是、 svn :基本svn命令svnadmin :存储库管理svnlook :存储库视图TortoiseSVN与windows资源管理器的集成subclipse与eclipse的集成、Subversion的一般操作、 import将本地目录导入资源库检查out资源库创建目录树的本地工作副本将update资源库文件与本地工作副本同步commit将本地工作副本中的文件更改提交到资源库add本地说明文件在存储库. move存储库中移动到其他位置,Subversion推荐目录结构,存储库项目名trunk :主版本branches :分支版本(独立版本) tags :版本v 1.0/v 2.0等标签版本Help Import Checkout基本的工作周期: updateyourworkingcopysvnupdatemakechangesaddeletecopymove,svn常用命令介绍, examineyourchangesstatusdiffrevertmergeotherschangesmergeresolvedcom

温馨提示

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

评论

0/150

提交评论