使用SVN进行版本控制-课件_第1页
使用SVN进行版本控制-课件_第2页
使用SVN进行版本控制-课件_第3页
使用SVN进行版本控制-课件_第4页
使用SVN进行版本控制-课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

使用SVN进行版本控制1使用SVN进行版本控制1摘要一、Subversion简介二、版本控制的基本知识 三、Subversion常用功能四、客户端工具TortoiseSVN五、SVN使用中常见问题2摘要一、Subversion简介2精品资料3精品资料3你怎么称呼老师?如果老师最后没有总结一节课的重点的难点,你是否会认为老师的教学方法需要改进?你所经历的课堂,是讲座式还是讨论式?教师的教鞭“不怕太阳晒,也不怕那风雨狂,只怕先生骂我笨,没有学问无颜见爹娘……”“太阳当空照,花儿对我笑,小鸟说早早早……”44使用SVN进行版本控制版本控制是管理信息变更的一门艺术版本控制工具早已经成为许多程序员的主要工具之一

版本控制软件的用途并不仅限于软件开发的领域,只要人们使用计算机来管理经常变更的信息,就需要使用版本控制工具

协同工作,大大提高团队工作效率及时了解团队中其他成员的进度资料共享记录每个文件从诞生到最终完成全过程的每步细节5使用SVN进行版本控制版本控制是管理信息变更的一门艺术5使用SVN进行版本控制

Subversion是一个自由的、开放源码的版本控制系统

它可以管理各个时刻的文件和目录Subversion将文件存放在repository库中。这个仓库非常类似于一个普通的文件服务器,只是它还可以记录文件和目录曾经做过的每一次变更Subversion允许你数据恢复到早期版本,或者是检查数据修改的历史,可把版本控制系统比作一种“时间机器”6使用SVN进行版本控制Subversion是一个自由的、使用SVN进行版本控制

Subversion的仓库可以通过网络来访问,允许不同的用户在不同的计算机上使用。不同的使用者可以进行协同工作。而且所有工作都是有记录的,如果有错只要撤销就可以。Subversion只是版本控制系统,不是软件配置管理系统(SCM)。它是一个通用系统,可以管理任何类型的文件集它是一个通道,可以管理任何计算机中的文件系统。7使用SVN进行版本控制Subversion的仓库可以通过网使用SVN进行版本控制CVS有明显的局限性和功能上的不足。2000年开始,CollabNet公司就开始着手开发新的版本控制系统来代替CVS。KarlFogel和JimBlandy是CVS开发者,加入到开发subversion当中。他们让Subversion来使用CVS的特性,并且保留相同的开发模型,但是避开CVS的那些明显的缺陷。Subversion于2001年8月进入“自测”阶段。8使用SVN进行版本控制CVS有明显的局限性和功能上的不足。8使用SVN进行版本控制目录控制CVS只能跟踪单个文件的历史,而Subversion实现了一个"虚拟"的受控文件系统,可以跟踪整个目录的变更。真正的版本历史由于CVS只限于记录文件的版本信息,像文件复制、重命名这样的操作它就不支持,在Subversion中我们可以添加、删除、复制和重命名文件和目录。9使用SVN进行版本控制目录控制9使用SVN进行版本控制原子化提交一个变更集要么完整地被提交到仓库中,要么不做任何改变,从而避免发生不完整地提交变更的情况。受控元数据每一个文件和目录都有一个与其对应的属性集。可选的网络层

Subversion仓库的存取是一个抽象概念,有利于其他人实现新的网络访问机制,Subversion可以作为一个外部模块插入到ApacheHTTP服务器中。10使用SVN进行版本控制原子化提交10使用SVN进行版本控制一致的数据处理

Subversion使用一种二进制的比较算法来表示文件之间的区别。高效的分支和标记分支和标记所带来的开销与项目的规模并没有直接的关系,Subversion在创建分支和标记时使用类似“连接”的方式来复制项目。扩展能力它是由一组设计良好的APIs实现的,包含在C的共享库中,这使得它很容易维护。也很容易被其他应用程序或语言使用11使用SVN进行版本控制一致的数据处理11使用SVN进行版本控制12使用SVN进行版本控制12使用SVN进行版本控制典型的client/server模式结构在系统的一端是存放着所有受控制数据的Subversion仓库。另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(RepositoryAccess,RA)的多条通道。这些通道中,有些要使用计算机网络,再通过用来访问Subversion仓库的服务器。而有些则完全绕过了网络,直接对仓库进行操作。13使用SVN进行版本控制典型的client/server模式结使用SVN进行版本控制Svn一个命令行的客户端程序Svnversion报告本地工作副本状态(当前档案的修订版本号表示)的程序Svnadmin

用来创建或者是修复仓库的工具svndumpfilter

过滤资源库程序14使用SVN进行版本控制Svn14使用SVN进行版本控制mod_dav_svnApache服务器的一个插件模块,用来使其他人可以通过网络访问这个仓库svnserve一个定制的、独立的Subversion服务程序。可作为一个驻留进程运行或者是由SSH调用。是使仓库可以被别人通过网络访问的另一种方法常用的组件是svn和svnadmin,有图形化客户端来实现svn和svnadmin功能。15使用SVN进行版本控制mod_dav_svn15使用SVN进行版本控制样式存取方式

直接从本地磁盘上访问仓库http://通过WebDAV协议访问Apache服务器而访问仓库https://和http://相同,但使用SSL来作加密svn:// 通过svnserve服务自定义的协议svn+ssh://和svn://相同,但通过SSH封装16使用SVN进行版本控制样式存取方式使用SVN进行版本控制

所有被Subversion管理的目录、文件有唯一路径支持的协议有http,https,svn,svns,filehttp://88/svn/kexie/proj/account/trunk/protocolhostrepositorydirectory17使用SVN进行版本控制所有被Subversion管理的目录使用SVN进行版本控制dav目录:提供给Apache与mod_dav_svn使用的目录,存储内部数据db目录:所有版本控制的数据存放文件hooks目录:放置hook脚本文件的目录locks目录:用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端

format文件:一个文本文件,记录文件库配置的版本号

conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)18使用SVN进行版本控制dav目录:提供给Apache与mod使用SVN进行版本控制仓库(TheRepository)版本控制模型实际工作中的subversionsubversion/cvs/vss比较19使用SVN进行版本控制仓库(TheRepository)使用SVN进行版本控制Subversion是一个集中式的系统。它的核心是一个用来存放数据的中心仓库。中心仓库使用典型的文件和目录层次结构――树状结构来存储信息。许许多多的客户端可以连接到中心仓库,然后读取或者写入文件。客户端通过写文件来使其他人共享,也可以读取其它客户端所写入的文件。典型的客户端/服务器系统模型,如图所示:20使用SVN进行版本控制Subversion是一个集中式的系使用SVN进行版本控制21使用SVN进行版本控制21使用SVN进行版本控制仓库就是一种文件服务器,只是不是通常的那种。Subversion仓库可以记录写入仓库的每一次更改。这些更改包括对每一个文件的每一次修改,甚至是对目录本身的修改,例如添加文件、删除文件和对文件和目录的重新编排。这些特性使得Subversion仓库与一般的文件服务器相比较为特殊。客户端同样可以读取文件和目录以前某个时刻的状态。版本控制系统的核心:记录和跟踪数据的修改历史22使用SVN进行版本控制仓库就是一种文件服务器,只是不是通常的使用SVN进行版本控制

版本控制系统的核心任务是使得数据可以协作处理和共享。但是不同的系统使用不同的策略来达到这个目标。文件共享的问题:怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?"锁定―修改―解锁"方案

"复制―修改―合并"方案

23使用SVN进行版本控制版本控制系统的核心任务是使得数据可以使用SVN进行版本控制许多版本控制系统都使用“锁定―修改―解锁”模型来解决这个问题,诸如:VSS在这样一个系统中,仓库在一个特定的时刻只允许一个人对某个文件进行修改。这种方案的问题是它有一点过于严格了,经常会阻塞用户的使用。锁定可能会带来管理问题。锁定可能导致不必要的串行工作。锁定可能导致错误的安全状态,文件可能相互依赖24使用SVN进行版本控制许多版本控制系统都使用“锁定―修改―解使用SVN进行版本控制Subversion、CVS以及其他一些版本控制系统使用“复制―修改―合并”模型来代替锁定。每一个用户的客户端软件从中央仓库创建出一份个人的工作副本――仓库中文件和目录的本地映射。用户就可以并行工作,修改手中的私有副本。这些私有副本合并成为一个全新的版本。版本控制系统常常需要合并,但是最终,操作者本身必须负责让合并工作正确进行。25使用SVN进行版本控制Subversion、CVS以及其他使用SVN进行版本控制

"复制―修改―合并"模型会带来冲突的问题用于解决冲突的时间远远少于锁定系统所带来的时间浪费。

没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突解决冲突的关键是用户交流26使用SVN进行版本控制"复制―修改―合并"模型会带来冲突的使用SVN进行版本控制"锁定-修改-解锁"模型被认为不利于协作,但有时候锁定会更好。"拷贝-修改-合并"模型假定文件是可以根据上下文合并的:就是版本库的文件主要是以行为基础的文本文件(例如程序源代码)。但对于二进制格式,例如图片或声音,在这种情况下,十分有必要让用户轮流修改文件,如果没有线性的访问,有些人的许多工作就最终要被放弃。SVN也支持"锁定-修改-解锁"模型。27使用SVN进行版本控制"锁定-修改-解锁"模型被认为不利于协使用SVN进行版本控制工作副本WorkingCopies修订版

Revision混合型修订版28使用SVN进行版本控制工作副本WorkingCopies使用SVN进行版本控制

一个

Subversion的工作副本其实就是本地系统中的一个普通的文件目录树。可以使用任何方式来编辑这些文件。如果是源代码文件的话,你也可以像通常情况那样去编译它们。

工作副本是你的私人工作区。如果你不明确的要求,Subversion绝不会合并其他人的修改,也不会让其他人看到你做的修改。29使用SVN进行版本控制一个Subversion的工作副使用SVN进行版本控制在你已经修改完工作副本中的文件,并且确信修改正确后,就可以将这些修改公开给同一个项目中的其他工作人员。Subversion提供了将文件写入仓库的命令。工作副本中也包含一些额外的文件。它们是由

Subversion创建和维护的,用来辅助完成这些命令。最典型的情况是,每一个目录都包含一个叫做.svn的子目录

。该目录也被称为“工作副本管理目录”。

一个

Subversion的仓库会包含几个项目,而每一个项目都是仓库的目录的一个子目录。这样,用户的工作副本也就对应于仓库中一个特定的子目录。

30使用SVN进行版本控制在你已经修改完工作副本中的文件,并且确使用SVN进行版本控制

一个

svncommit操作可以将任意数量的文件和目录的修改发布作为一个单独的原子事务来处理。在仓库中,每一次提交都被作为一个原子事务来对待。每当仓库接受一次提交,仓库中的文件系统目录都会创建一种新的状态,叫做一个修订版。

每一个修订本都被赋予一个唯一的自然数,并且每一个修订版的数字都比前一个要大。刚刚建立的仓库的初始的版本是0,只包含一个空的根目录。

Subversion的修订版编号是针对整个目录树的,而不是某一个独立的文件。如图所示:31使用SVN进行版本控制一个svncommit操作可以使用SVN进行版本控制设想一个修订版编号的数列,从0开始,从左延伸到右。每一个修订版编号都对应一个画下面的目录树,而每一个目录树就是在每一次提交之后的仓库的"快照"。32使用SVN进行版本控制设想一个修订版编号的数列,从0开始使用SVN进行版本控制一般的原则上,Subversion努力使自己尽可能的灵活。一个典型的灵活性的体现就是允许工作副本中包含有混合的修订版编号的能力。

在完成向仓库的提交之后,刚刚提交的文件和目录就拥有了最新的修订版编号,而其他文件没有。

33使用SVN进行版本控制一般的原则上,Subversion努使用SVN进行版本控制svncvsvss工作模式Copy-Modify-MergeCopy-Modify-MergeLock-Modify-Unlock粒度目录级文件级文件级访问存储库方式本地文件、专有服务器、webdav本地文件、专有服务器本地文件访问授权基于apache目录授权CVSACL专有管理工具分支和标记支持,高效实现支持不支持使用方式多种专有工具、IDE集成、命令行多种专有工具、IDE集成、命令行专用工具,使用方便分支、标记处理高效实现,相同文件在实现时通过链接实现,不占用额外空间不同分支、标记中相同文件需占不同空间无分支、标记概念34使用SVN进行版本控制svncvsvss工作模式Copy-M使用SVN进行版本控制基本术语主要讲解SVN客户端工具的常用命令通过本部分的学习,可以操作所有任务在日常使用subversion版本控制系统35使用SVN进行版本控制基本术语35使用SVN进行版本控制基本修订版(revision)存储库接受的每一次修改产生新的修订版HEAD:存储库中最新版本BASE:工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。分支(branches)标记(tags)合并(merging)36使用SVN进行版本控制基本修订版(revision)36使用SVN进行版本控制命令行工具通过命令行方式,主要命令包括:svn:基本svn命令svnadmin:存储库管理svnlook:存储库查看TortoiseSVN与windows资源管理器集成subclipse与eclipse集成37使用SVN进行版本控制命令行工具37使用SVN进行版本控制import将本地目录导入存储库checkout从存储库创建目录树的本地工作拷贝update将存储库中文件同步到本地工作拷贝中commit本地工作拷贝中文件修改提交到存储库中add将本地文件加入到存储库中remove从存储库中删除一个文件(保留历史记录).move在存储库中讲一个文件移到另一个位置38使用SVN进行版本控制import38使用SVN进行版本控制存储库项目名trunk:主版本branches:分支版本(独立版本)tags:标记版本,比如发行版v1.0/v2.0等等39使用SVN进行版本控制存储库39使用SVN进行版本控制

工作拷贝存储库CommitUpdate未修改未修改未修改已修改从存储库中取出最新版本已修改未修改将本地修改提交到存储库中已修改已修改可能冲突将存储库的修改合并到工作拷贝中40使用SVN进行版本控制工作拷贝存储库CommitUpdat使用SVN进行版本控制HelpImportCheckout基本的工作周期:UpdateyourworkingcopysvnupdateMakechangesadddeletecopymove41使用SVN进行版本控制Help41使用SVN进行版本控制ExamineyourchangesstatusdiffrevertMergeothers’changesMergeResolvedCommityourchangescommit42使用SVN进行版本控制Examineyourchange使用SVN进行版本控制import:提交未纳入版本控制的文件或目录树至档案库用法:import[PATH]URL递归地提交PATH的拷贝至地址(URL)。如果省略PATH,默认为‘.’。父目录会依需要于档案库内建立。举例:svnimport./kav8-m"addkav8"43使用SVN进行版本控制import:提交未纳入版本控制的文使用SVN进行版本控制

CentralRepositoryLocalWorkspace(s)AimportACentralRepositoryLocalWorkspace(s)Abeforeafterinsync44使用SVN进行版本控制CentralRepository使用SVN进行版本控制checkout(co):从repository中取出文档,在本机建立工作副本(workingcopy)开始工作前的前置动作用法:checkoutURL[PATH]例如:svnco45使用SVN进行版本控制checkout(co):从rep使用SVN进行版本控制

CentralRepositoryLocalWorkspace(s)checkoutACentralRepositoryLocalWorkspace(s)AbeforeafterinsyncA46使用SVN进行版本控制CentralRepository使用SVN进行版本控制Export:导出一个无版本控制的目录树副本用法:

svnexport[-rREV]URL[@PEGREV][PATH]

svnexport[-rREV]PATH1[@PEGREV][PATH2]例如:

svnexportExport与Checkout的区别 export导出的副本无svn附加文件,不在服务器的版本控制下 checkout会在本地建立一个工作区,可以修改和提交47使用SVN进行版本控制Export:导出一个无版本控制的目录使用SVN进行版本控制将repository上的版本整合到本地端的工作副本(workspace)可能会出现冲突,需要手动解决用法:update[PATH...]例如: svnupdate

Atrevision25.48使用SVN进行版本控制将repository上的版本整合到本使用SVN进行版本控制

CentralRepositoryLocalWorkspace(s)updateA’CentralRepositoryLocalWorkspace(s)A’beforeafterinsyncA’A49使用SVN进行版本控制CentralRepository使用SVN进行版本控制提交操作使workspace与repository保持同步本地端的修改包含:文件内容修改、文件目录删除需要发布到repository时用法:commit[PATH...]–mLOG_MSG日志信息必须提供,但可以是空的例如: svnci-m"addaword" Sendingdir1/222 Transmitting. Committedrevision26.50使用SVN进行版本控制提交操作使workspace与repo使用SVN进行版本控制

CentralRepositoryLocalWorkspace(s)commitA’CentralRepositoryLocalWorkspace(s)A’beforeafterinsyncAA’51使用SVN进行版本控制CentralRepository使用SVN进行版本控制最好能够一次提交概念性、功能性或任务性的修改确保源代码编译通过52使用SVN进行版本控制最好能够一次提交概念性、功能性或任务性使用SVN进行版本控制Add:增加文件或者目录到资源库中,然后commit。条件是该文件或者目录已经在相应的目录上。Delete删除在库中的文件或者目录,然后commit。Copy拷贝文件,然后commitMove移动文件或目录到另外目录中,相当于拷贝、删除的组合。以上的命令是针对工作副本进行的,所以要commit才有效53使用SVN进行版本控制Add:53使用SVN进行版本控制Status显示工作拷贝目录与文件的状态。用法:status[PATH...]

svnstatuswc

Mwc/bar.cAwc/qax.cDiffdiff(di):显示两个路径中的差异

svndiff-r19:25Project.javaRevert恢复原始未改变的工作拷贝文件(恢复大部份的本地修改)

54使用SVN进行版本控制Status54使用SVN进行版本控制Merge将两个来源之间的差异应用至工作拷贝路径

Resolved移除工作拷贝的目录或文件的'冲突'状态

55使用SVN进行版本控制Merge55使用SVN进行版本控制CleanupListCatLogmkdir56使用SVN进行版本控制Cleanup56使用SVN进行版本控制'A’预定要添加的项目。'D’预定要删除的项目。'M’项目已经修改了。‘U’文件更新了(从服务器收到修改)'R’项目在工作拷贝中已经被替换了。这意味着文件预定要删除,然后有一个同样名称的文件要在同一个位置替换它。‘C‘项目的内容(相对于属性)与更新得到的数据冲突了。'?’项目不在版本控制之下。‘!‘项目已经丢失(例如,你使用svn移动或者删除了它)。这也说明了一个目录不是完整的(一个检出或更新中断)。

57使用SVN进行版本控制'A’预定要添加的项目。57使用SVN进行版本控制独立于主干(trunk)的“新项目”新项目开始于某一稳定版本的revision,通过revisioncopy得到分支的基本概念—正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史例子: svncp-m“createbranchfromr101"58使用SVN进行版本控制独立于主干(trunk)的“新项目”5使用SVN进行版本控制开发可能会对主分支产生影响从某一版本产生独立的“特殊”产品解决BUG增加新功能59使用SVN进行版本控制开发可能会对主分支产生影响59使用SVN进行版本控制与BRANCH类似,给稳定的版本做记号一个标签只是一个项目某一时间的“快照”,在Subversion里这个概念无处不在—每一次提交的修订版本都是一个精确的快照。从TAG中取出的代码可以编译成独立的产品一般与Release产品一一对应例子:svncptag_release_3_0-m“createtagfromr101"60使用SVN进行版本控制与BRANCH类似,给稳定的版本做记号使用SVN进行版本控制branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别。至于何时用tag,何时用branch,完全由人主观的根据规范和需要来选择,而不是强制的。一般情况下,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结束,做一个tag,tag_release_3_0_1,然后,根据需要决定branch_bugfix_3_0是否并入trunk。61使用SVN进行版本控制branch和tag,对于svn都是使使用SVN进行版本控制合并BRANCH的修改到TRUNK合并主分支的最新版本到工作副本BUG修正后将BUG去除的代码合并到其他“特殊”BRANCH可以用来恢复旧版本merge:Applythedifferencesbetweentwosourcestoaworkingcopypath.

usage: 1.mergesourceURL1[@N]sourceURL2[@M][WCPATH]

2.mergesourceWCPATH1@NsourceWCPATH2@M[WCPATH]

3.merge[-cM|-rN:M]SOURCE[@REV][WCPATH]。其实,第一个URL(称之为左边),为起始状态;第二个URL(称之为右边),为最终状态,取最新的;最后一个是接收区别的工作拷贝(通常叫做合并的目标)。62使用SVN进行版本控制合并BRANCH的修改到TRUNK62使用SVN进行版本控制svn没有恢复旧版本的直接功能,不过可以使用svn

merge命令恢复。例子:当前HEAD为14,而我要恢复成10版本,怎么做?用svn

merge:

svnupdate

svn

merge--revision14:10[PATH]

svncommit-m"restoretorevision10”Merge原理是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。又因为本地版本是最新的14,所以把这些差异应用到本地版本时就等于把14改变成10,其效果等于还原到版本10。63使用SVN进行版本控制svn没有恢复旧版本的直接功能,不过可使用SVN进行版本控制产生原因当团队协同工作的时候,多人同时操作一个文件。当有人操作完成后,将该文件提交到SVN上。这样,其他人的本地文件与SVN上的文件版本不一致。当另一人操作完成后,提交该文件时,就会出现冲突对于每一个冲突的文件,Subversion放置三个额外的未版本化文件到你的工作拷贝:

更新前的文件,最新更改的内容。

更新操作以前的BASE版本文件,在上次更新之后未作更改的版本。

服务器的版本,对应版本库的HEAD版本。这里OLDREV是本地.svn目录中的修订版本号,NEWREV是版本库中HEAD的版本号。64使用SVN进行版本控制产生原因64使用SVN进行版本控制面对文件冲突,您可以选择以下三种方式解决冲突:1. “手动”合并冲突文本(检查和修改文件中的冲突标志)。--需要团队成员交流2. 如果希望取消自己的修改,可以拷贝Subversion为你生成的文件替换你的工作拷贝用某一个临时文件覆盖你的工作文件。3. 运行svnrevert<>来放弃所有的修改。解决了重提之后,运行svnresolved,删除了临时文件,之后可以提交了。65使用SVN进行版本控制面对文件冲突,您可以选择以下三种方式解使用SVN进行版本控制养成良好的习惯,在修改文件之前,先进行一次update操作当修改完成后,及时commit,不要在本地停留时间过长在多人协作时,尽量修改自己撰写的部分,不要修改其他部分多人协作时,增加交流出现冲突很正常,可以通过前面的三个方法解决,不要相互覆盖66使用SVN进行版本控制养成良好的习惯,在修改文件之前,先进行使用SVN进行版本控制TortoiseSVN介绍TortoiseSVN的使用67使用SVN进行版本控制67使用SVN进行版本控制Windows操作系统客户端图形化界面,集成了svn和svnadmin命令行工具的功能。该客户端集成于资源管理器功能中,使用方便,易于掌握。网上可搜索下载,直接安装TortoiseSVN-9898-win32-svn-1.6.12.msi,方法同一般软件安装相同68使用SVN进行版本控制Windows操作系统客户端68使用SVN进行版本控制一旦该客户端安装成功,在指定目录单击右键,弹出菜单中,增加了几项,如图所示:69使用SVN进行版本控制一旦该客户端安装成功,在指定目录单击使用SVN进行版本控制如上图所示,在资源管理器菜单中增加了,svn

温馨提示

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

最新文档

评论

0/150

提交评论