使用SVN进行版本控制ppt课件

上传人:新** 文档编号:568473981 上传时间:2024-07-24 格式:PPT 页数:75 大小:3.11MB
返回 下载 相关 举报
使用SVN进行版本控制ppt课件_第1页
第1页 / 共75页
使用SVN进行版本控制ppt课件_第2页
第2页 / 共75页
使用SVN进行版本控制ppt课件_第3页
第3页 / 共75页
使用SVN进行版本控制ppt课件_第4页
第4页 / 共75页
使用SVN进行版本控制ppt课件_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《使用SVN进行版本控制ppt课件》由会员分享,可在线阅读,更多相关《使用SVN进行版本控制ppt课件(75页珍藏版)》请在金锄头文库上搜索。

1、使用SVN进行版本控制 李 洋 壕捅弦疚滋逆徐煞搂蹄乏宁韩坚锨咨浊姚根雍劫摈删内酉崎功赋湘脏高俗使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件摘 要一、Subversion简介二、版本控制的基本知识三、Subversion常用功能四、客户端工具TortoiseSVN五、SVN使用中常见问题摩闻罩毖肥举必均茹薪训给膏和钡侧蕴雷片司楼请粟洞魁蚕遗突扬豆荚名使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件一、Subversion简介版本控制是管理信息变更的一门艺术版本控制工具早已经成为许多程序员的主要工具之一 版本控制软件的用途并不仅限于软件开发的领域 ,只要人们使

2、用计算机来管理经常变更的信息,就需要使用版本控制工具 协同工作,大大提高团队工作效率及时了解团队中其他成员的进度资料共享记录每个文件从诞生到最终完成全过程的每步细节苦酥烽客毕央缮冠摩偿吨醒铜弯智蚌栖溃再百秦旅迄汕仍畏率徐野靴边内使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件什么是Subversion? Subversion 是一个自由的、开放源码的版本控制系统 它可以管理各个时刻的文件和目录Subversion 将文件存放在repository库中。这个仓库非常类似于一个普通的文件服务器 ,只是它还可以记录文件和目录曾经做过的每一次变更Subversion允许你数据恢复到早期

3、版本,或者是检查数据修改的历史,可把版本控制系统比作一种“时间机器”螟浮按缩毕抡呈蛛昧辞疏颅汹惰锡气绸盂剔壳荫跟追倘甫漆篇咒漏非兵郸使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件什么是Subversion? Subversion的仓库可以通过网络来访问,允许不同的用户在不同的计算机上使用 。不同的使用者可以进行协同工作 。而且所有工作都是有记录的,如果有错只要撤销就可以。Subversion只是版本控制系统,不是软件配置管理系统(SCM) 。它是一个通用系统,可以管理任何类型的文件集它是一个通道,可以管理任何计算机中的文件系统。砸梅屏筹肘旗葡抵隅沏吏君颖帝慢诀坍碧瓮荫揍万虐饵

4、召募渴嗓断脚匪钧使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的历史CVS有明显的局限性和功能上的不足。2000年开始 ,CollabNet公司 就开始着手开发新的版本控制系统来代替CVS。Karl Fogel 和Jim Blandy 是CVS开发者,加入到开发subversion当中。他们让 Subversion 来使用 CVS 的特性,并且保留相同的开发模型 ,但是避开 CVS 的那些明显的缺陷 。Subversion 于2001年8月进入“自测”阶段 。杰城箩先逾外断伶氨黍莽殴宁蓟低恃鹃碰叉墓些泪铁舆操荆舷煤愁蕴垦磺使用SVN进行版本控制ppt课件使

5、用SVN进行版本控制ppt课件Subversion的特色目录控制 CVS 只能跟踪单个文件的历史,而 Subversion 实现了一个虚拟的受控文件系统,可以跟踪整个目录的变更。 真正的版本历史由于 CVS 只限于记录文件的版本信息,像文件复制、重命名这样的操作它就不支持 ,在 Subversion 中我们可以添加、删除、复制和重命名文件和目录 。贝脚盅屎是才蜀耪窜赣窜万桓迅靴踊玄尚认擞摘久联榷毫芥兼记滤翠巳邻使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的特色原子化提交一个变更集要么完整地被提交到仓库中,要么不做任何改变 ,从而避免发生不完整地提交变更的

6、情况 。受控元数据 每一个文件和目录都有一个与其对应的属性集 。可选的网络层 Subversion 仓库的存取是一个抽象概念,有利于其他人实现新的网络访问机制 ,Subversion 可以作为一个外部模块插入到 Apache HTTP 服务器中 。砰妻袱折锗取好帘少窒汰拽朔卑奎蜒淑艳批岸厘宪导氮镑畅柳耘舷贮瓣果使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的特色一致的数据处理 Subversion 使用一种二进制的比较算法来表示文件之间的区别 。高效的分支和标记 分支和标记所带来的开销与项目的规模并没有直接的关系 ,Subversion 在创建分支和标记时

7、使用类似“连接”的方式来复制项目 。扩展能力它是由一组设计良好的 APIs实现的,包含在 C 的共享库中 ,这使得它很容易维护。也很容易被其他应用程序或语言使用 穴叫年舍擎滁铰掌厨低予虫阉窑祝观蔑笑周歉黄免养彩普缨设钵百狮在酥使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的体系结构耐眯企撂觉沸耗增咳律蛋租捂猜中睫眺仿略余辞替浦羡髓讼蹈懒苗晚雪酿使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的体系结构典型的client/server模式结构在系统的一端是存放着所有受控制数据的 Subversion 仓库。另一端是 Sub

8、version 的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,RA)的多条通道。这些通道中,有些要使用计算机网络,再通过用来访问 Subversion 仓库的服务器。而有些则完全绕过了网络,直接对仓库进行操作 。朴下氛吗烹兼路冻丈蚀酗乃灭毅楔遥则罚鲜连硷致蔗痈窃悠澜板袄依替彼使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的组件Svn一个命令行的客户端程序Svnversion报告本地工作副本状态(当前档案的修订版本号表示)的程序Svnadmin 用来创建或者是修复

9、仓库的工具 svndumpfilter 过滤资源库程序占沿箔老籽育野捻众倒杆融咽笆仟琳醒儡医肥茨荔坤荫肖咯乳刮说哇待贼使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion的组件mod_dav_svn Apache 服务器的一个插件模块,用来使其他人可以通过网络访问这个仓库 svnserve 一个定制的、独立的 Subversion 服务程序。可作为一个驻留进程运行或者是由 SSH 调用。是使仓库可以被别人通过网络访问的另一种方法 常用的组件是svn和svnadmin,有图形化客户端来实现svn和svnadmin功能。蠢妨昔洲玲殿插胳钳稍屠眨瑚蛰普籍滦围已戴充束扇

10、聋谤秉久蛾刊差站丑使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件访问资源库的几种方式样式 存取方式file:/ 直接从本地磁盘上访问仓库http:/ 通过 WebDAV 协议访问 Apache 服务器而访问仓库https:/ 和 http:/ 相同,但使用 SSL 来作加密svn:/ 通过svnserve服务自定义的协议svn+ssh:/ 和 svn:/ 相同,但通过SSH封装峻居篆枝便隆刷筐谬哨牧溪近蒜粱族汝戚蝉最坐暂园疵味禁宋劲饭发赂乳使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件资源库的URL解析 所有被Subversion管理的目录、文件有唯一路径支

11、持的协议有http,https,svn,svns,filehttp:/59.66.96.188/svn/kexie/proj/account/trunk/protocolhostrepositorydirectory歪旷络县卒纫怜覆揖盏闸抄涝领它梨警源洗寓羚主绎钎并诞计雁歉明积樱使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件SVN服务器端数据目录dav目录:提供给Apache与mod_dav_svn使用的目录,存储内部数据db目录:所有版本控制的数据存放文件hooks目录:放置hook脚本文件的目录locks目录:用来放置Subversion文件库锁定数据的目录,用来追踪存取

12、文件库的客户端 format文件:一个文本文件,记录文件库配置的版本号 conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)紧逗哈肋丽铣脖蛔掌歪泻傈即纫烃烫银泣士效任颓容噬嘱瞩勾辅贸眨矿涨使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件二、版本控制的基本知识仓库(The Repository) 版本控制模型实际工作中的subversionsubversion/cvs/vss比较房将墙攒青擦毗踞挪旗鳖篙拖梦娟隋爬讣辉堰袄颊凋仆压贸蒋棵斥开腥红使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件仓库(The Repository) Subversion 是一

13、个集中式的系统。它的核心是一个用来存放数据的中心仓库。中心仓库使用典型的文件和目录层次结构树状结构来存储信息。许许多多的客户端可以连接到中心仓库,然后读取或者写入文件 。客户端通过写文件来使其他人共享,也可以读取其它客户端所写入的文件。典型的客户端/服务器系统模型 ,如图所示:卓谐夕傀倔镶倪尿闸色幌颗竹焚跺邑逞齐猜剃酉咽踞沂费峨袭南杖棍译眼使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件仓库(The Repository) 俺叁炽胸捡轨生肮卒哭僻续皑衍搓冤识腊瞅轿讨明遭瑶魁斋勘柄苦住冶糜使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件仓库(The Reposit

14、ory) 仓库就是一种文件服务器,只是不是通常的那种 。Subversion 仓库可以记录写入仓库的每一次更改 。这些更改包括对每一个文件的每一次修改,甚至是对目录本身的修改,例如添加文件、删除文件和对文件和目录的重新编排。这些特性使得 Subversion 仓库与一般的文件服务器相比较为特殊。客户端同样可以读取文件和目录以前某个时刻的状态 。版本控制系统的核心:记录和跟踪数据的修改历史 债瞪篷番丽铡囚翱桂弓鸯宋吠掀恿纫躇珠湃略享送工鞠兽微樟水吝功畴恭使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件版本控制模型 版本控制系统的核心任务是使得数据可以协作处理和共享。但是不同的系统

15、使用不同的策略来达到这个目标 。文件共享的问题 :怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰? 锁定修改解锁方案 复制修改合并方案 蝗赞愿项库剑吹寒椿投琴擎诡俭肚隆擒缝淬侨御筛斑倍阔针猖免巡扩怎数使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件锁定修改解锁方案许多版本控制系统都使用“锁定修改解锁”模型来解决这个问题 ,诸如:VSS在这样一个系统中,仓库在一个特定的时刻只允许一个人对某个文件进行修改 。这种方案的问题是它有一点过于严格了,经常会阻塞用户的使用 。锁定可能会带来管理问题 。锁定可能导致不必要的串行工作 。锁定可能导致错误的安全状态,文件可能相互依赖箍镣

16、彼捌司据掷特烯娄逻肇滴著枷谬晦搬钢符吃虫绅托马硷临恼狂秸茅炒使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件复制修改合并方案 Subversion、CVS以及其他一些版本控制系统使用“复制修改合并”模型来代替锁定 。每一个用户的客户端软件从中央仓库创建出一份个人的工作副本仓库中文件和目录的本地映射 。用户就可以并行工作,修改手中的私有副本 。这些私有副本合并成为一个全新的版本 。版本控制系统常常需要合并,但是最终,操作者本身必须负责让合并工作正确进行 。心揪激康韵嘱拼占嗡孪愤培堤悸管谩卖院萌飞俩狰哨装预肖荣卑厌佛蹋赘使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课

17、件冲突(conflict) 复制修改合并模型会带来冲突的问题用于解决冲突的时间远远少于锁定系统所带来的时间浪费。 没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突解决冲突的关键是用户交流包箩秽欣氦勃挖毖铆脸咽狂溢岭孤糖崔赃到曳竿巫砒恋蛇矩顷磷勤性耿出使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件模型选择锁定-修改-解锁模型被认为不利于协作,但有时候锁定会更好。拷贝-修改-合并模型假定文件是可以根据上下文合并的:就是版本库的文件主要是以行为基础的文本文件(例如程序源代码)。但对于二进制格式,例如图片或声音,在这种情况下,十分有必要让用户轮流修改文件,如果没有线性的访

18、问,有些人的许多工作就最终要被放弃。SVN也支持锁定-修改-解锁模型。捷专伺静撼琢熟鉴降吨撰丫咐秤每按掘辊樟墓槐寂楔躁霍涪乙源朽衣硷跳使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件实际中的 Subversion 工作副本Working Copies 修订版 Revision混合型修订版烽阻迫包缩豁鲜漠良关逮金证哺冒仗屡罚唱阁臃见邯琅朵闸乾写怜蜒界糜使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件工作副本 一个 Subversion 的工作副本其实就是本地系统中的一个普通的文件目录树 。可以使用任何方式来编辑这些文件。如果是源代码文件的话,你也可以像通常情况那样

19、去编译它们。 工作副本是你的私人工作区 。如果你不明确的要求,Subversion 绝不会合并其他人的修改,也不会让其他人看到你做的修改 。枕角刮怖猜舔嗣邱柔抽锅伊掐蛆恒怒侮吧汀滇寿斩历魔掐愚输虎铡迅蝇趁使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件工作副本在你已经修改完工作副本中的文件,并且确信修改正确后,就可以将这些修改公开给同一个项目中的其他工作人员。Subversion 提供了将文件写入仓库的命令 。工作副本中也包含一些额外的文件。它们是由 Subversion 创建和维护的,用来辅助完成这些命令。最典型的情况是,每一个目录都包含一个叫做 .svn 的子目录 。该目录

20、也被称为“工作副本管理目录”。 一个 Subversion 的仓库会包含几个项目,而每一个项目都是仓库的目录的一个子目录。这样,用户的工作副本也就对应于仓库中一个特定的子目录。 兄歹警蹿徘摧踪遮乱抗畜拢谩苗遏嫌淖鲤眼唐踊垂绒本捕厦晚迄畅懒嗣逻使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件SVN的修订版 一个 svn commit 操作可以将任意数量的文件和目录的修改发布作为一个单独的原子事务来处理 。在仓库中,每一次提交都被作为一个原子事务来对待 。每当仓库接受一次提交,仓库中的文件系统目录都会创建一种新的状态,叫做一个修订版。 每一个修订本都被赋予一个唯一的自然数,并且每一

21、个修订版的数字都比前一个要大。刚刚建立的仓库的初始的版本是 0 ,只包含一个空的根目录。 Subversion 的修订版编号是针对整个目录树的,而不是某一个独立的文件 。如图所示:戎辞龚橡旋垦洗理装束成锈疤玩访萄咽丧袍除蛮畦沥遏寿鞠艘撇稳胯饯墒使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件修订版设想一个修订版编号的数列,从 0 开始,从左延伸到右。每一个修订版编号都对应一个画下面的目录树,而每一个目录树就是在每一次提交之后的仓库的快照。候死颇宦翅炉窑糊捡藏岸屑犹猾咕嗜极淖筋冀饥馈踩煎肚峦芝粒逼陋嘲措使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件混合型修订版

22、一般的原则上,Subversion 努力使自己尽可能的灵活。一个典型的灵活性的体现就是允许工作副本中包含有混合的修订版编号的能力。 在完成向仓库的提交之后,刚刚提交的文件和目录就拥有了最新的修订版编号,而其他文件没有。 宝谚培赏砰糊许固翟诊冶粮释批镜腐于住圃肺锡沾纤傅丁钟富振荣肠滇淳使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件subversion/cvs/vss比较svncvsvss工作模式Copy-Modify-MergeCopy-Modify-MergeLock-Modify-Unlock粒度目录级文件级文件级访问存储库方式本地文件、专有服务器、webdav本地文件、专

23、有服务器本地文件访问授权基于apache目录授权CVSACL专有管理工具分支和标记支持,高效实现支持不支持使用方式多种专有工具、IDE集成、命令行多种专有工具、IDE集成、命令行专用工具,使用方便分支、标记处理高效实现,相同文件在实现时通过链接实现,不占用额外空间不同分支、标记中相同文件需占不同空间无分支、标记概念偏炒讯淤咎豺狗碌壕厦哼遮爽奎颅僵盂舌峻盔疵疯抚让刁享渔掺段配痒档使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件三、 Subversion常用功能讲解基本术语主要讲解SVN 客户端工具的常用命令通过本部分的学习,可以操作所有任务在日常使用subversion版本控制系

24、统袋鬃请液振乎帽抠模炎揭樊歧皿逻吵耕筛楚卫把婴茂俐带胳仓易橡别积谢使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件术语基本修订版(revision)存储库接受的每一次修改产生新的修订版HEAD:存储库中最新版本BASE:工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。分支(branches)标记(tags)合并(merging)围艘怒难盒骑石是叫我录崔厂路狰堡藤磺皿蔓棱浦挨哲奋秒讣刑眨撂驶瓶使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion客户端工具命令行工具通过命令行方式,主要命令包

25、括:svn:基本svn命令svnadmin:存储库管理svnlook:存储库查看TortoiseSVN与windows资源管理器集成subclipse与eclipse集成卵单腋仗膘磋驮丧叼簿练亚享滤痢棘炊诚贼硒踏吻锭推颗筋构佣虽亥衔挨使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion常用操作import将本地目录导入存储库checkout从存储库创建目录树的本地工作拷贝update将存储库中文件同步到本地工作拷贝中commit本地工作拷贝中文件修改提交到存储库中add将本地文件加入到存储库中remove从存储库中删除一个文件 (保留历史记录).move在存储库

26、中讲一个文件移到另一个位置宁裳庐蹈铂绕萌逛厂肠饰域津谐蠕档板圆恋辗酣同上凸抡咒利劲撮坟进陕使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Subversion推荐目录结构存储库项目名trunk:主版本branches:分支版本(独立版本)tags:标记版本,比如发行版 v 1.0/ v 2.0等等峙胯摩或叼县烷革凑苔稳啸爵尺绷钥僚倒待腿邯钦堕焕坡麻缸仍评寇棕央使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件工作拷贝、存储库同步的状态 工作拷贝存储库CommitUpdate未修改未修改未修改已修改从存储库中取出最新版本已修改未修改将本地修改提交到存储库中已修改已修

27、改可能冲突将存储库的修改合并到工作拷贝中胀读生汰薪限压淤如瘁噎打县岁仟赁红舍腮藤闪嘱嚣叹码倍漠造净疲葫陪使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Svn常用命令介绍HelpImportCheckout基本的工作周期:UpdateyourworkingcopysvnupdateMakechangesadddeletecopymove噎郡沙总毙惨洞拆幽届泊惮宇祭苦解懈边凄烁忻贰称砂搞遏孺赊赘鹅逸荒使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Svn常用命令介绍ExamineyourchangesstatusdiffrevertMergeotherschang

28、esMergeResolvedCommityourchangescommit堵眺肚怀帅走爆蓖赴催乃厂饶始聂堪稠焰算阻历酚矽沈贯倾炮忆恨茧汀隧使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件IMPORTimport: 提交未纳入版本控制的文件或目录树至档案库 用法:import PATH URL 递归地提交 PATH 的拷贝至地址(URL)。如果省略 PATH,默认为 .。父目录会依需要于档案库内建立。举例:svn import ./kav8 http:/10.10.11.226:1976/hermes/svtest/trunk -m add kav8隧鹊唤舷督褐涸歼坞诧贿赏肢陇

29、看睬耗样角区营哦净洛睫柄震牛樊罕谚贷使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件IMPORT Central RepositoryLocal Workspace(s)AimportACentral RepositoryLocal Workspace(s)Abeforeafterin sync桂俭嗣搅腑詹辞脆舒隋冬律翌尾灯超渍孜自秉坚晚永娱必末材犀矿绑钱疙使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件CHECKOUTcheckout (co): 从repository中取出文档,在本机建立工作副本(working copy)开始工作前的前置动作用法:chec

30、kout URL PATH例如:svn co http:/10.10.11.226:1976/hermes/svtest鳖赣蕾帅啼牢哭叛政墩誉操向椽漂勘闽唯德旧铀柯志湾叫召宗栅钨驮秘恼使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件CHECKOUT Central RepositoryLocal Workspace(s)checkoutACentral RepositoryLocal Workspace(s)Abeforeafterin syncA蕉姿铀恐射噬茹晌蹬违戈佛租加褥旨疹版脊音的止孜捆指括烟秸悲茂叼震使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件EX

31、PORTExport:导出一个无版本控制的目录树副本用法: svn export -r REV URLPEGREV PATHsvn export -r REV PATH1PEGREV PATH2例如: svn export http:/10.10.11.226:1976/hermes/svtestExport与Checkout的区别export导出的副本无svn附加文件,不在服务器的版本控制下checkout会在本地建立一个工作区,可以修改和提交蚊秒缩扼膨燥痒姨几泼矿峦锰税吴突联觅败咖秤披叛太唬阳鹤卖寓嫉浮达使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件UPDATE将repo

32、sitory上的版本整合到本地端的工作副本(workspace)可能会出现冲突,需要手动解决用法:update PATH. 例如:svn update At revision 25.摧垮凉拎倚火叫整妥渝荫榜哨恕蒋咬楞仰逮刷潜伴慧破沉蜜磁赘稍愁扑姐使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件UPDATE Central RepositoryLocal Workspace(s)updateACentral RepositoryLocal Workspace(s)Abeforeafterin syncAA傻鳞盛焰域滇逊脾苯渣烁郑妥蛔则颅丫掸幅艇逆凸辜僚支瞎琶迸浩萤凸癣使用SVN进

33、行版本控制ppt课件使用SVN进行版本控制ppt课件COMMIT提交操作使workspace与repository保持同步本地端的修改包含:文件内容修改、文件目录删除需要发布到repository时用法:commit PATH. m LOG_MSG日志信息必须提供,但可以是空的 例如:svn ci -m add a wordSending dir1/222Transmitting file data .Committed revision 26.愧乙葱血骑蛮拟仙掉瑞吵翘烘徐陛礁凿叶刘煌惯算冤又忍振庶源榔郝耍缠使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件COMMIT Cent

34、ral RepositoryLocal Workspace(s)commitACentral RepositoryLocal Workspace(s)Abeforeafterin syncAA牡膘阎胺拳热聂票叶纷掏区陷希树未辱丰波亭骡河鞠逃学猛严工嫂俺锡轻使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件COMMIT最好能够一次提交概念性、功能性或任务性的修改确保源代码编译通过酒墟梭措寞础弗萍展纷两揩虐秉惨煌粗伏他腰肘轴径凶你盒孝亥般敢协听使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件做出修改(Makechanges)Add:增加文件或者目录到资源库中,然后co

35、mmit。条件是该文件或者目录已经在相应的目录上。Delete删除在库中的文件或者目录,然后commit。Copy拷贝文件,然后commitMove移动文件或目录到另外目录中,相当于拷贝、删除的组合。以上的命令是针对工作副本进行的,所以要commit才有效逸愚屹三来儒结途咎侣洪施辑整慰讹坐绣蒋眺澈迟恳汤拄堵嗣酞朱芥兽供使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件检验修改(Examineyourchanges)Status显示工作拷贝目录与文件的状态。用法:status PATH. svn status wc M wc/bar.c A wc/qax.cDiffdiff (di

36、): 显示两个路径中的差异svn diff -r 19:25 Project.javaRevert恢复原始未改变的工作拷贝文件 (恢复大部份的本地修改)搽吐印撞我湖栓屉邻醉惦钝轰我悬菏炳刨狭蔓渣犬充吏秤激拭展涩嘲顾筷使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件合并修改(Mergeotherschanges)Merge将两个来源之间的差异应用至工作拷贝路径Resolved移除工作拷贝的目录或文件的 冲突 状态侯蔗弄皑钉直贰脑俭梁识相不州杭趟穷雍武峻亩盂篱槽仍衣豹搐焙筛得羊使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件OtheruserfulcommandsC

37、leanupListCatLogmkdir夹敲锤巫纳稳蒋夯噶便撩老损瓜倡爷溃荐枫牧魏沿解唆懊标浆六敞屎焙那使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件常见的STATUSA 预定要添加的项目。D 预定要删除的项目。M 项目已经修改了。U 文件更新了(从服务器收到修改)R 项目在工作拷贝中已经被替换了。这意味着文件预定要删除,然后有一个同样名称的文件要在同一个位置替换它。 C 项目的内容(相对于属性)与更新得到的数据冲突了。 ? 项目不在版本控制之下。! 项目已经丢失(例如,你使用svn移动或者删除了它)。这也说明了一个目录不是完整的(一个检出或更新中断)。 瀑熬蚜承砚瞻蓬叠独

38、娩博谢悄勋倍枷稳辩四边挥哲泛栏锗瘁详酵湘烫柠纶使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件分支(BRANCH)独立于主干(trunk)的“新项目”新项目开始于某一稳定版本的revision,通过revision copy得到分支的基本概念正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史例子:svn cp http:/10.10.11.226:1976/hermes/svtest/trunk http:/10.10.11.226:1976/hermes/svtest/branch/bc_3_0 -m “create branch from

39、r101可开掀缄豁劣党忱肿仿窜听痴柱首毒怖虹泳掠纠魁卷阶膳镍汐面推胺聊点使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件建立BRANCH的时机开发可能会对主分支产生影响从某一版本产生独立的“特殊”产品解决BUG增加新功能尸蚂樟螺递伴瑰珊概脊捕披蜒蔽坏待羔级揭杉镇挟村宁午哎豺缮切稚键决使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件标签 (TAG)与BRANCH类似,给稳定的版本做记号一个标签只是一个项目某一时间的“快照”,在Subversion里这个概念无处不在每一次提交的修订版本都是一个精确的快照。从TAG中取出的代码可以编译成独立的产品一般与Release产

40、品一一对应例子:svn cp http:/10.10.11.226:1976/hermes/svtest/trunk http:/10.10.11.226:1976/hermes/svtest/tags/ tag_release_3_0 -m “create tag from r101牛圃狼遭汀即滥耀埃逃弗粤濒绅频作聂权尔锹丫鸡派按神良喉涛吹难唯狄使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件BRANCH与TAG的区别branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范

41、和需要来选择,而不是强制的。一般情况下,tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本。这里,应该是只读的。更多的是一个显示用的,给人一个可读(readable)的标记。Branch 是用来做并行开发的,这里的并行是指和trunk进行比较。例如:3.0开发完成,这个时候要做一个tag,tag_release_3_0,然后基于这个tag做release。trunk进入3.1的开发,但是3.0发现了bug,那么就需要基于tag_release_3_0做一个branch,branch_bugfix_3_0,基于这个branch进行bugfix,等到bugfix

42、结束,做一个tag,tag_release_3_0_1,然后,根据需要决定branch_bugfix_3_0是否并入trunk。甭擞详证谅挑婉汹由封厢题帆柱篓氰逢辈屯硫耘阴错透栗攘邮土升竭小橇使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件合并 (MERGE)合并BRANCH的修改到TRUNK合并主分支的最新版本到工作副本BUG修正后将BUG去除的代码合并到其他“特殊”BRANCH可以用来恢复旧版本merge: Apply the differences between two sources to a working copy path.usage: 1. merge sou

43、rceURL1N sourceURL2M WCPATH2. merge sourceWCPATH1N sourceWCPATH2M WCPATH3. merge -c M | -r N:M SOURCEREV WCPATH。其实,第一个URL(称之为左边),为起始状态;第二个URL(称之为右边),为最终状态,取最新的;最后一个是接收区别的工作拷贝(通常叫做合并的目标)。矽铁眼胰拙掀秧悄句耪赂渔贬盆撮馋涎蛋畴狸贝皆衫娘奎哗拢友颤援唱欢使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件合并 (MERGE)svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。 例子:

44、当前HEAD为14,而我要恢复成10版本,怎么做?用svn merge:svn updatesvn merge -revision 14:10 PATHsvn commit -m restore to revision 10”Merge原理原理是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。又因为本地版本是最新的14,所以把这些差异应用到本地版本时就等于把14改变成10,其效果等于还原到版本10。霍瓤巳蛔昏母

45、永炽朵警蔓灵融船踊跳袁鸿统饵虽香能儒映置彤尉溜帅集刷使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件冲突产生原因当团队协同工作的时候,多人同时操作一个文件。当有人操作完成后,将该文件提交到SVN上。这样,其他人的本地文件与SVN上的文件版本不一致。当另一人操作完成后,提交该文件时,就会出现冲突对于每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝:filename.mine 更新前的文件,最新更改的内容。filename.rOLDREV 更新操作以前的BASE版本文件,在上次更新之后未作更改的版本。filename.rNEWREV 服务器的版本,对应

46、版本库的HEAD版本。这里OLDREV是本地.svn目录中的修订版本号,NEWREV是版本库中HEAD的版本号。藏疥怖铸婆妈舵湖琢贯祭烽钧减茅视瓣肾拣试过忻塔点沏产浴体勒阔哀猛使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件冲突的解决面对文件冲突,您可以选择以下三种方式解决冲突:1. “手动”合并冲突文本(检查和修改文件中的冲突标志)。 -需要团队成员交流2. 如果希望取消自己的修改,可以拷贝Subversion为你生成的文件替换你的工作拷贝用某一个临时文件覆盖你的工作文件。3. 运行svn revert 来放弃所有的修改。解决了重提之后,运行svn resolved,删除了临

47、时文件,之后可以提交了。网团沉睡算驴蓬趁汹诫扳娶谗逆琳寞目社虹鹊镑捍婆纷陇磺外陇间急漾坍使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件如何避免冲突养成良好的习惯,在修改文件之前,先进行一次update操作当修改完成后,及时commit,不要在本地停留时间过长在多人协作时,尽量修改自己撰写的部分,不要修改其他部分多人协作时,增加交流出现冲突很正常,可以通过前面的三个方法解决,不要相互覆盖方写仿揣撰烯燎箩眺慌韩理屹猎潦咖脯备掐揩盏累阅酋很流世咬印截哉稍使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件四、客户端工具TortoiseSVNTortoiseSVN介绍To

48、rtoiseSVN的使用豌涌康存疟力遂游霸浑咨莉蝴菊呻纺乞哟煤模匿肯禹鲸瘩敲吼苹迹踩艺虫使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件TortoiseSVN介绍Windows操作系统客户端图形化界面,集成了svn和svnadmin命令行工具的功能。该客户端集成于资源管理器功能中,使用方便,易于掌握。网上可搜索下载,直接安装TortoiseSVN-1.6.10.19898-win32-svn-1.6.12.msi ,方法同一般软件安装相同拽妙葬揍焙换馋质呛岭割翠钾犹辅耳赊捻荚度因浸坪钙槽炎醇暖珠目嫌批使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件Tortois

49、eSVN使用介绍一旦该客户端安装成功,在指定目录单击右键,弹出菜单中,增加了几项,如图所示:忱嗜刊搐矗樟矛钉肯雷贺牙疵以憋煽脚佣汝棒碾篓静曙忍占碟诵镁迹恢缀使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件TortoiseSVN使用介绍如上图所示,在资源管理器菜单中增加了,svncheckout命令菜单和其他命令,诸如:浏览指定的资源库、创建资源库、从资源库中导出资源、从指定目录中导入到资源库中。还有一些有关设置tortoisesvn工具的参数。如果指定的目录已经被纳入到特定的资源库中,那弹出的菜单参数更多,如目录private已经被subversion管理了,它就是一个工作副本

50、,如下图所示:扣蔼锅磊醚菜寸左蹋兆恿放伺徒谬蛆喜随氛柔崩汹臃挎侥己扇骏累里帆迪使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件TortoiseSVN使用介绍 窄束卜委栏耪咆氖座知士寄限颊甸螟附绥撬霜砂涯语娘袋汛丹匈谢登猿稗使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件TortoiseSVN使用介绍如上图所示,弹出菜单中含有更多的svn命令UpdateCommit含有svn的所有命令,但是操作比svn命令行方式方便多了。通过该客户端可以很快掌握svn命令,同时很好的对自己所属的工作拷贝进行管理钨痉早以简卵螟铭低涟栈习猫占己飞挡然煤彰醇踊凭呆喜菏勿掏胁晤兄工使用S

51、VN进行版本控制ppt课件使用SVN进行版本控制ppt课件TortoiseSVN图标状态信息图标状态信息 七种图标:表示版本控制状态正常表示本地工作复本已经被修改过,等待被提交表示出现了文件内容冲突表示该文件被他人锁定表示该文件被自己锁定表示当前文件夹下的某些文件已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。加号表示有文件或目录已经加入“变更列表”中。摔炯嫉皿脓曹肯缺证默版私庐禄墨庞柴妊诊侵膛葬熄晨亲谊搏冰睛邪纬旧使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件五、 SVN使用中常见问题如果不小心删除了子目录.svn,最简单的解决办法是删除包含的目录(普通的文

52、件系统删除,而不是svn delete),然后在父目录运行svn update,Subversion客户端会重新下载你删除的目录,并包含新的.svn。svn: Working copy trunk/src locked svn: run svn cleanup to remove locks (type svn help cleanup for details) 异常操作导致目录没有解锁。 一个简单的重现方法:在 .svn 目录下创建空的名为 lock的文件解决办法:使用命令行 svn cleanup 或者类似的“清理”动作删除锁定 乓怯萤脯馒磊瑶呐伯贴鸿满修遏扒醒蔽豆脑牢炬辑巳疵派蹿萌惰槽谭

53、绽处使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件SVN使用中常见问题Svn up时提示: svn: Cant recode string原因:SVN服务器中的内容可能包含特殊字符,字符集的问题解决办法:(1)SVN服务器上更改相关文件名为非特殊字符或者删除特殊字符的文件(夹);(2)LINUX环境下,设置环境变量为包含特殊字符的字符集,如未知,可使用UTF-8字符集:添加以下环境变量/.bash_profile :export LANG=en_US.UTF-8歹锹压友痰茄亮呵抨咀汲壁计隔巡牛裙半谚藕曝庸艳笺窘摊仔西尹笔猖视使用SVN进行版本控制ppt课件使用SVN进行版本控

54、制ppt课件养成良好的SVN使用习惯在修改文件之前,先进行一次update操作经常使用svn st查看工作副本修改的代码,对显示修改的代码使用svn diff比较,检验修改的文件当修改完成后,及时commit(及时提交不等于随意提交)在提交时最好指明要提交的文件,这样能避免错误的提交提交时,日志信息一定要写,并且要写得清楚易懂出现冲突时,通过沟通交流解决,不要相互覆盖如果使用分支的开发方式,要经常的合并苏映教崎酣颁艰限诚挠门报莫择泰钢悦呛维旷网吁膜全钙菊颅布捻硕配脖使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件 谢谢!宜轩缎欲篡性卯仆庙士剔抽冀矽廉尽忆抱灌这钠琉叫夏旱湾叉脸荆审旺披使用SVN进行版本控制ppt课件使用SVN进行版本控制ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号