SVN客户端操作总结.ppt_第1页
SVN客户端操作总结.ppt_第2页
SVN客户端操作总结.ppt_第3页
SVN客户端操作总结.ppt_第4页
SVN客户端操作总结.ppt_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

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

文档简介

2020年6月8日,1,SVN进阶,2020年6月8日,2,SVN进阶,SVN简介及其他版本控制工具对比版本控制模型与冲突主干、分支、标签、合并等常用操作SVN客户端工具简介SVN最佳实践,2020年6月8日,3,SVN简介,SVN,是一个开放源代码的版本控制系统,相对于其他版本控制系统采用了分支管理系统,它的设计目标就是取代CVS。它可以管理各个时刻的文件和目录。它还可以记录文件和目录曾经做过的每一次变更。,SVN-特性,版本化的目录svn实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在svn中,文件和目录都是版本化的。真实的版本历史可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题原子提交一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况,2020年6月8日,4,版本化的元数据每一个文件和目录都有自己的一组属性键和它们的值。可以根据需要建立并存储任何键/值对。和文件本身的内容一样,属性也在版本控制之下可选的网络层SVN可以作为一个扩展模块嵌入到Apache之中,此外,Subversion自身也实现了一个轻型的,可独立运行的服务器软件。这个服务器使用了一个自定义协议,可以轻松的用SSH封装。一致的数据操作用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的。这两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。高效的分支和标签操作分支与标签操作的开销与工程的大小无关。SVN的分支和标签操作用只是一种类似于硬链接(文件的特殊快捷方式快捷方式)的机制拷贝整个工程。因而这些操作通常只会花费很少且相对固定的时间。,2020年6月8日,5,版本管理系统比较,2020年6月8日,6,2020年6月8日,7,SVN是一个集中式的系统。典型的客户端/服务器系统模型,它的核心是一个用来存放数据的中心仓库。中心仓库使用典型的文件和目录层次结构树状结构来存储信息。,SVNRepository,2020年6月8日,8,SVN修订号,一个svncommit操作可以将任意数量的文件和目录的修改发布作为一个单独的原子事务来处理。在仓库中,每一次提交都被作为一个原子事务来对待。每当仓库接受一次提交,仓库中的文件系统目录都会创建一种新的状态,叫做一个修订集(改动集)。每一个版本号都被赋予一个唯一的自然数,并且每一个修订本的数字都比前一个要大。刚刚建立的仓库的初始的版本是0,只包含一个空的根目录。Subversion的修订号是针对整个目录树的,而不是某一个独立的文件。,版本控制模型加锁策略的选择,假设有两个开发人员,A和B,他们在同一个项目中工作。他们两人都把项目文件签出到了各自的本地硬盘上,并且都想要修改自己本的filel.cs如果这时两个人都签入会怎么样?严格加锁(悲观锁)乐观加锁什么时候锁定是必需的,2020年6月8日,9,2020年6月8日,10,版本控制模型,Subversion以及其他一些版本控制系统使用“复制修改合并”模型来代替锁定。每一个用户的客户端软件从中央仓库创建出一份个人的工作副本仓库中文件和目录的本地映射。用户就可以并行工作,修改手中的私有副本。这些私有副本合并成为一个全新的版本。版本控制系统常常需要合并,但是最终,操作者本身必须负责让合并工作正确进行。,2020年6月8日,11,冲突(conflict),遇到冲突这种情况,只有人本身才有能力理解和做出合理的选择。注意,软件并不能自动解决冲突。用于解决冲突的时间远远少于锁定系统所带来的时间浪费。,冲突分类,文件冲突树冲突属性冲突,2020年6月8日,12,文件冲突,当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发生文件冲突。revision,2020年6月8日,13,文件名.扩展名.mine这是你的文件,在你更新你的工作副本之前存在于你的的工作副本中也就是说,没有冲突标志。这个文件除了你的最新修改外没有别的东西。文件名.扩展名.r旧版本这是在你更新你的工作副本之前的基础版本(BASErevision)文件。也就是说,它是在你做最后修改之前所检出的文件。,2020年6月8日,14,文件名.扩展名.r新版本这个文件是当你更新你的工作副本时,你的Subversion客户端从服务器接收到的。这个文件对应于版本库中的最新版本,2020年6月8日,15,树冲突,当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。冲突的demo,2020年6月8日,16,2020年6月8日,17,主干,分支,标签,合并,Trunk:是主干,居于主要地位的源代码。这是开发的主线。,Tags:标签用来给某一时刻(或者一些目录或者整个项目)分配一个名字,如:第一发布预览版,V1.0标签是很好地跟踪项目开发过程中发生重要事件的方式,2020年6月8日,18,Branches:维护中的历史版本、提交测试的版本或有针对性开发的版本,2020年6月8日,19,合并分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到主干,或者相反。合并总是在工作副本中进行。如果你想要合并修改到分支,你必须检出该分支的工作副本,并且从这个工作副本使用合并向导。分支DEMO,2020年6月8日,20,2020年6月8日,21,Svn客户端,Subversion是以一套命令行程序的形式发布的-svn,svnadmin,svnserve,等。命令行是很容易使用,便是很多人还是喜欢使用一些界面更友好的工具。SVN,提供了丰富的API供第三方开发人员使用,因此他们可以编写附加的客户端和工具。,2020年6月8日,22,a.直接与Windows文件浏览器集成。b.图形化界面,集成了svn和svnadmin命令行工具的功能。c.该客户机集成于资源管理器功能中,使用方便,易于掌握。d.下载地址,tortoiseSVN,2020年6月8日,23,Ankhsvn,VisualSVN基于VS的插件,方便与VS集成Subeclipse基于Eclipse的插件,方便与eclipse集成,与IDE集成,2020年6月8日,24,tortoiseSVN使用,1、图标介绍,2020年6月8日,25,:代表一个新检出的工作复本使用绿色的对勾做重载。表示Subversion状态正常.:在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。:如果在提交的过程中出现了冲突图标变成黄色感叹号。:加号告诉你有一个文件或是目录已经被计划加入版本控制。,2020年6月8日,26,:如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。:如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。:这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。,2020年6月8日,27,还有很多其他的功能,例如:提交修改到版本库、与版本库同步、显示与版本库中相应文件的差别、追溯版本信息、获

温馨提示

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

评论

0/150

提交评论