GTortoiseSVN客户端使用指南Word格式.docx

上传人:b****5 文档编号:21023022 上传时间:2023-01-27 格式:DOCX 页数:39 大小:1.09MB
下载 相关 举报
GTortoiseSVN客户端使用指南Word格式.docx_第1页
第1页 / 共39页
GTortoiseSVN客户端使用指南Word格式.docx_第2页
第2页 / 共39页
GTortoiseSVN客户端使用指南Word格式.docx_第3页
第3页 / 共39页
GTortoiseSVN客户端使用指南Word格式.docx_第4页
第4页 / 共39页
GTortoiseSVN客户端使用指南Word格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

GTortoiseSVN客户端使用指南Word格式.docx

《GTortoiseSVN客户端使用指南Word格式.docx》由会员分享,可在线阅读,更多相关《GTortoiseSVN客户端使用指南Word格式.docx(39页珍藏版)》请在冰豆网上搜索。

GTortoiseSVN客户端使用指南Word格式.docx

版本

过程改进组(EPG)审核

会签

批准

备注

目录

文档修订记录2

目录3

1目的5

2范围5

3SVN概述5

4SVN及TortoiseSVN的特点5

4.1版本化的目录5

4.2真实的版本历史5

4.3原子提交5

4.4版本化的元数据6

4.5可选的网络层6

4.6一致的数据操作6

4.7高效的分支和标签操作6

4.8可修改性6

4.9与资源管理器无缝集成6

4.10覆盖图标6

4.11右键菜单6

4.12拖放菜单7

5SVN基本概念7

5.1SVN工作原理7

5.2术语8

5.2.1仓库/版本库8

5.2.2工作拷贝8

5.2.3修订版本8

5.2.4BASE版本8

5.2.5HEAD版本8

5.2.6提交(commit)代码8

5.2.7更新(Update)9

5.2.8导入(import)代码9

5.2.9日志9

5.2.10冲突(conflict)9

6TortoiseSVN的使用9

6.1系统要求9

6.2安装9

6.3URL访问方式9

6.4基础操作10

6.4.1一般设置11

6.4.2保存认证及清除认证13

6.4.3建立工作拷贝14

6.4.4更新工作拷贝16

6.4.5增加17

6.4.6删除18

6.4.7提交18

6.4.8查看状态——检查更新20

6.5进一步使用SVN21

6.5.1导入21

6.5.2重命名22

6.5.3移动23

6.5.4复制23

6.5.5查看日志23

6.5.6查看差异26

6.5.7版本库浏览器27

6.5.8解决冲突28

6.6深入使用SVN30

6.6.1svncleanup30

6.6.2标签31

6.6.3分支33

6.6.4归并34

7SVN的使用技巧35

7.1文件/目录取消修改35

7.2找回删除的文件/目录36

1

目的

为使用SVN作为配置管理工具的客户端的用户提供操作指导。

2范围

适用于所有使用SVN作为配置工具客户端的用户。

本文主要以TortoiseSVN为客户端进行说明。

3SVN概述

SVN是Subversion的简称,它与CVS一样使用拷贝-修改-合并模型,在这种模型里,每一个用户在自己的工作空间建立一个个人工作拷贝——版本库中文件和目录的本地映射。

用户并行工作,修改各自的工作拷贝,最终,各个私有的拷贝合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。

4SVN及TortoiseSVN的特点

4.1版本化的目录

CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。

在Subversion中,文件和目录都是版本化的。

4.2真实的版本历史

由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作——这些操作改变了目录的内容。

同样,在CVS中,目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。

而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。

4.3原子提交

一系列相关的更改,要么全部提交到版本库,要么一个也不提交。

这样用户就可以将相关的更改组成一个逻辑整体,防止出现部分修改而另一部分未修改的情况提交到版本库中。

4.4版本化的元数据

每一个文件和目录都有自己的一组属性——键和它们的值。

可以根据需要建立并存储任何键/值对。

和文件本身的内容一样,属性也在版本控制之下。

4.5可选的网络层

Subversion在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。

Subversion可以作为一个扩展模块嵌入到Apache之中。

这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术——认证、授权和传输压缩等等。

此外,Subversion自身也实现了一个轻型的,可独立运行的服务器软件。

这个服务器使用了一个特定的协议,这个协议可以轻松地用SSH封装。

4.6一致的数据操作

Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的。

这两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。

4.7高效的分支和标签操作

在Subversion中,分支与标签操作的开销与工程的大小无关。

Subversion的分支和标签操作用只是一种类似于硬链接的机制拷贝整个工程。

因而这些操作通常只会花费很少并且相对固定的时间和很小的版本库空间。

4.8可修改性

Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API。

这使得Subversion非常容易维护,和其它语言的互操作性很强。

4.9与资源管理器无缝集成

TortoiseSVN与Windows外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。

4.10覆盖图标

每个版本控制的文件和目录的状态使用小的覆盖图标表示,可以让你立刻看出工作副本的状态。

4.11右键菜单

所有的Subversion命令存在于资源管理器的右键菜单,TortoiseSVN在那里添加子菜单。

4.12拖放菜单

右键拖拽文件或目录到新的位置,或者右键拖拽一个非版本控制的文件或文件夹到一个版本控制目录下的时候,右键菜单还能够出现拖放菜单。

5SVN基本概念

5.1SVN工作原理

图1

图中的下面层是保存所有在版本控制下数据的Subversion版本库,上面层是Subvesion的客户端程序,管理着所有在版本控制下数据的本地影射,在这两极之间是各种各样的版本库访问(RA)层,某些使用电脑网络通过网络服务器访问版本库,某些则绕过网络服务器直接访问版本库。

5.2术语

5.2.1仓库/版本库

又称主拷贝,是SVN系统保存数据资源的地方。

所有项目的所有文件的所有版本都保存在这个仓库中。

5.2.2工作拷贝

一个Subversion工作拷贝是你本地机器一个普通的目录,保存着一些文件,你可以任意的编辑文件,而且如果是源代码文件,你可以像平常一样编译,你的工作拷贝是你的私有工作区,在你明确的做了特定操作之前,Subversion不会把你的修改与其他人的合并,也不会把你的修改展示给别人,你甚至可以拥有同一个项目的多个工作拷贝。

一个工作拷贝也包括一些由Subversion创建并维护的额外文件,用来协助执行这些命令。

通常情况下,你的工作拷贝每一个文件夹有一个以.svn为名的文件夹,也被叫做工作拷贝管理目录,这个目录里的文件能够帮助Subversion识别哪一个文件做过修改,哪一个文件相对于别人的工作已经过期了。

5.2.3修订版本

每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做一次修订(revision),每一个修订版本被赋予一个独一无二的自然数,一个比一个大,初始修订号是0,只创建了一个空目录,没有任何内容。

Subversion的修订号是针对整个目录树的,而不是单个文件。

每一个修订号代表了一次提交后版本库整个目录树的特定状态,另一种理解是修订号N代表版本库已经经过了N次提交。

//对于混合版本的处理需要理解

5.2.4BASE版本

工作拷贝中的每一个目录都有一个叫作.svn的管理目录,工作目录中的每一个文件,Subversion在管理区域为它保留了一个备份,这是上一个版本(叫做“BASE”版本)没有修改的(没有关键字变化,没有行结束符号转化,没有任何改动)拷贝,我们把这个文件当作原始拷贝或基准文件使用,它与版本库中的文件完全一样。

工作拷贝中一个条目的修订版本号,如果这个版本在本地修改了,则“BASE版本”就是这个条目在本地未修改的版本。

5.2.5HEAD版本

版本库中最新的(或者是“最年轻的”)版本。

5.2.6提交(commit)代码

将代码送到服务器保存,commit又叫作checkin。

因为svn服务器在将代码存入仓库的时候要进行版本检查,以及做相应的记录。

5.2.7更新(Update)

在协同开发的一般情况下,将其他人所作的最新修改从SVN仓库中取到你的工作拷贝中,从而使得你的工作拷贝与仓库中的最新版本保持一致,也与项目的最新进展保持一致。

5.2.8导入(import)代码

将未被SVN进行版本管理的代码或文档引入SVN系统中,由SVN开始对它进行版本管理。

5.2.9日志

是用来记录每次操作的内容和目的的信息。

在提交和导入等操作时,操作者必须提供一些注释信息,这些注释信息被SVN作为日志的一部分。

5.2.10冲突(conflict)

在协同开发的环境下,当两个开发人员对同一个文件的同一行代码进行修改,并且依次提交SVN仓库的时候,就发生了冲突。

这种冲突需要手工消除,并提交到SVN仓库中形成解除冲突之后的新版本。

6TortoiseSVN的使用

6.1系统要求

TortoiseSVN可以运行在Win2kSP2,WinXP或更高的版本,TortoiseSVN1.2.0以后不再支持Windows98,WindowsME和WindowsNT4,但是如果需要的话,你仍旧可以下载以前的版本。

6.2安装

TortoiseSVN有一个简单易用的安装程序,双击安装文件,根据指导,安装程序会完成剩下的工作。

如果你希望为所有用户安装TortoiseSVN,你必须有系统的管理员权限,如果你没有那些权限,TortoiseSVN只会为当前用户安装。

6.3URL访问方式

Subversion可以通过多种方式访问——本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL。

访问方法如表一所示。

表一

模式

访问方法

file:

///

直接版本库访问(本地磁盘)。

http:

//

通过配置Subversion的Apache服务器的WebDAV协议。

https:

与http:

//相似,但是包括SSL加密。

svn:

通过svnserve服务自定义的协议。

svn+ssh:

与svn:

//相似,但通过SSH封装。

我们通常使用的是http:

//及svn:

//的访问方式。

6.4基础操作

SVN的基本工作流程如下:

1)建立工作拷贝

2)更改工作产品

3)检验修改

4)合并别人的修改到工作拷贝

5)提交你的修改

下文介绍使用操作说明时,一般指的右键菜单即对个目标文件或目录击右键选取TortoiserSVN后如图2所示的主菜单。

根据目标对像不一样可能菜单的内容不一样。

常用快捷键:

F1帮助。

F5刷新当前视图。

刷新工作副本中的图标重载。

图2

6.4.1一般设置

TortoiserSVN的一般设置在菜单下的“设置”中进行:

设置语言:

对于喜爱中文显示界面的,如图3所示;

设置图标:

对于需要映射到网络磁盘上的工作拷贝显示图标的查看图标含义:

对增删改的文件会显示在文件上,不明白意义时查看,如图4、5所示。

图3

图4

图5

6.4.2保存认证及清除认证

在下列进行操作客户端时,当需要输入认证时,将出现如图6所示界面。

图6

若点击保存认证,客户端接收到一个认证请求,它会首先查找用户磁盘中的认证凭证缓存,如果没有发现,或者是缓存的凭证认证失败,客户端会提示用户需要这些认证信息。

若需清除用户认证,可在TortoiserSVN菜单下的”设置”中进行如下设置。

点击”认证数据”后的清除按钮即可,如图7所示。

(当没有保存认证时,该按钮显示灰色,不可用)

图7

6.4.3建立工作拷贝

图8

在图8所示的URL栏中输入配置管理工程师提供的版本库路径如:

//192.168.106.52/svn/Project

检出至目录即为检出到本地的路径,可直接填写,若没有该目录时,会弹出提示框是否需要新建文件夹。

另一种访问方式为svn:

//的形式,如

//192.168.106.52/cm/tmp/svntest/Project。

在图8中默认选取最新版本,若需要checkout其它版本时,可在版本中填写版本号,若不知道选哪个版本,可点击其后的日志按钮,根据日志信息进行查找相应的版本。

点击确认后将出现如图9所示界面的信息,表示正在checkout中。

图9

工作拷贝的文件目录(如图10)介绍:

branches为分支目录,tags为标签版本,trunk为主干目录。

建立工作拷贝后,

图10

注意:

◆一般只checkout主线,否则工作拷贝会比较庞大。

可使用下文中的“版本库浏览器”查看标签版本与分支目录。

◆在建立一次工作拷贝后,以后不要使用该命令。

在检索工作拷贝时建议以后使用更新,如果在你的工作拷贝中再次使用检出与初次建立工作拷贝时的命令的参数一致,则检出的功能类似于更新,如果从不同的目录来调用,则会在当前工作目录下创建新的工作拷贝。

◆因为工作拷贝“同你的系统上的文件和目录没有什么区别”,如果你希望重新规划工作拷贝,你必须要让SVN知道,当你希望拷贝或者移动或删除工作拷贝的一个项目或目录等时,你应该使用菜单中的命令,而不要使用操作系统的命令。

除非你准备好了提交一个新文件或目录,否则没有必要通知Subversion你做了什么。

6.4.4更新工作拷贝

在工作拷贝中点击需要更新的目录或文件,击右键“更新”将出现如图11所示更新界面,即更新当前的版本为42。

因WINDOWS下的变更都很直观地表示出来了。

更新后显示从版本库中下载的变更记录,不会变动工作拷贝中的内容,如图11中说明更新了库中的readme.txt,若出现版本库中已被他人修改,你的工作拷贝亦对同一处有不同的修改时,会出现冲突信息,如图13。

图11

若需要检查本地工作拷贝更新的状态,可点击“检查更新状态”菜单,出现如图12所示界面

图12

图13

如何解决冲突在后面的章节中介绍。

6.4.5增加

右击选中的需增加的文件或文件夹,选取添加,将出现如图14所示界面。

图14

在该对话框中亦可选取需增加的文件及目录,点击确定即可。

现只是预增加过程,若需增加到版本库中,则需要使用提交操作。

若需撤消增加或删除,点击“SVN还原”,即可返回未增加前的状态。

6.4.6删除

右击选中的需增加的文件或文件夹,选取删除,若是文件则工作拷贝中即刻删除,若是目录,则目录中的文件被删除,文件夹保留。

这只是预删除过程,若需要删除版本库中的,则需要使用提交操作。

对于删除目录,在目录上直观地显示出来(如X),,但如果是删除文件,则显示不出来,可点击“检查更新”菜单看变更状态。

对于预增加与预删除的或修改后的文件或目录,在未提交前,若需撤消增加或删除,点击“SVN还原”,即可返回未修改前的状态。

6.4.7提交

选取需提交的文件或目录,点击“提交”菜单,则会出现如图15所示提示框,在信息框中输入日志信息,若使用已编辑过的最近的信息,可点击“最近信息”按钮选取已输入的日志信息。

图15

点击确认,系统便开始提交,如图16所示。

若未保存认证的信息,则需要重新输入用户名与密码,系统认证是否有写的权限。

图16

这是默认的配色方案。

蓝色:

提交一个修改。

紫色:

提交一个新增项。

深红:

提交一个删除或是替换。

黑色:

所有其他项。

6.4.8查看状态——检查更新

可查看工作拷贝上的变更,工作拷贝中缺的文件及与版本库中比较缺少的或更改的情况。

右击文件或目录,选取“检查更新”,不点击检查版本库时不与版本库进行比较,只是与工作拷贝中的BASE版本比较,显示出变更的文件。

否则将同时与版本库比较检查库中是否有了新的变动,如图17。

图17

6.5进一步使用SVN

6.5.1导入

选取需导入的干净的目录及其文件,击右键,选取“导入”则出现如图18所示界面

图18

注意:

◆导入必须是干净的目录及其文件,必须去掉一些脏文件,如.svn的SVN管理型文件目录或CVS管理性目录或.vssversion文件或一些过程中编译生成的二进制文件。

◆导入只是导入到版本库,并未建立工作拷贝,需建立工作拷贝后方可在上面进行修改。

查看可不另外建立工作拷贝(可点击右键“版本库浏览器”直接进行浏览,查看是否正常)

◆如果你要将你的源代码树检出到与你导入它们时相同的目录,Subversion会给出一个错误信息它不会用已受控的文件覆盖已经存在的但未受控的文件。

你必须检出到一个不同的目录或是先将已经存在的源代码树删除。

◆建议导入前的代码不删除作备份,建立工作拷贝后再与导入前的代码进行比较确认无误后再删除备份的代码。

6.5.2重命名

选中需重命名的文件或目录,输入改名后,将出现如图19所示界面

图19

工作拷贝中将出现新的文件及其目录,需要进行提交时方可生效.

重命名时将保留其命名前的历史记录,会关联到原版本,在版本分支图中可以查看到,如图20。

图20

如果想得到复制原目录或文件,则在重命名操作,未提交前,将原目录进行还原,图21所示,即可将预删除源件恢复,将copy的文件进行提交即可达到目的。

图21

6.5.3移动

将需移动的文件或目录拖放指向到目的文件夹中,并在拖放菜单中,选取“移动版本控制的文件到当前位置”

则在目的地及源地方的父目录中提交即可将源目录的文件/目录删除与目的地移动过来的文件增加。

若版本分支图显示,则可显示其历史记录。

6.5.4复制

将需复制的文件或目录拖放指向到目的文件夹中,并在拖放菜单中,选取“复制版本控制的文件到当前位置”。

若在目的地父目录中提交即可将目的地的复制过来的目录或文件增加。

6.5.5查看日志

查看某时间段的日志信息或所有日志,默认情况某时间段的,可点击全部显示看整个项目的变更日志信息,如图22。

具有比较功能,按ctrl键选取任意两个版本,击右键选取“比较版本差异”即可比较。

具有统计功能。

统计总的情况及按每日提交次数统计及按作者提交次数,如图23、24、25。

图22

图23

图24

图25

6.5.6查看差异

比较目录的差异或整个版本的差异

在所在的目录下,点击右键,打开版本分支图。

选一个版本,按CTRL键再选另外一版本,点击“比较版本差异”出现如图26所示界面的比较结果。

比较某个文件工作拷贝中的版本与checkout时的版本之间的差异,选取该文件,点击右键,打开“比较差异”显示比较结果,如图27。

图26

图27

6.5.7版本库浏览器

点击建立工作拷贝中所示图中的URL后的“….”按钮,则会显示版本库浏览器,可显示用户可读的配置库中的目录结构与状态。

若在已建立的工作拷贝的目录下,选击右键选取“版本库浏览器”,显示工作拷贝所在项目的配置库状态,如图28。

或直接在资源管理器中点击右键选取“版本库浏览器”输入版本库URL路径后查看。

图28

在该文中只介绍其作为客户端的远程查看,一般不建议直接远程进行修改。

6.5.8解决冲突

如svntest已修改过readme2.txt,而同时另一用户qtqt工作拷贝中不是版本库中最新版本进行了修改,提交时将出现如图29所示提示信息。

图29

则此时点击“更新”,若不出现冲突,即两人改动的不是同一地方,则系统会自动归并,需要提交人员也在此确认一下,是否可以直接这样累加修改,若确认可以直接提交即可,否则亦需要确认后再提交。

若出现如图30所示冲突。

并同时多了三个文件readme2.txt.mine(工作拷贝中修改过的),readme2.txt.r56(工作拷贝中修改前的即BASE版本),readme2.txt.r57(版本库中的版本)选取“编辑冲突”直观地显示有冲突的地方,如图31。

图30

图31

此时需要手动解决冲突。

1)若需要归并,则需确认最终版本,去掉如下所示红色字体的冲突标记

<

.mine

afaf123modifybyqtqt=======

afaf123

modifybysvntest>

>

.r57

解决冲突完毕,选取“已解决”,则生成的三个临时文件被清除,进行提交即可。

2)若放弃修改,以版本库中的为准,则选取菜单中的”SVN还原”即可更新到版本库中最新版本

3)若要完全采用修改后的版本,则删除readme2.txt,复制readme2.txt.mine为readme.txt,与1)相同需选取”已解决”,并进行提交。

6.6深入使用SVN

6.6.1svncleanup

查找工作拷贝中所有遗留的日志文件,删除进程中工作拷贝的锁。

点击菜单中的清理即可。

6.6.2标签

6.6.2.1概念

一个标签只是一个项目某一时间的“快照”,在Subversion里这个概念无处不在——每一次提交的修订版本都是一个精确的快照。

这就是与以往的VSS及CVS的不同之处,因其本身每次提交都表示整个目录的内部版本号,而VSS与CVS提交的版本号是针对文件的。

但是内部的版本号毕竟是数字的,人们需要更加人性化的标签名称,像release-1.0。

也希望可以对一个子目录快照。

这就需要标识标签。

SVN没有用于建立分支和标记的特殊命令,但是使用所谓的拷贝来代替。

拷贝类似于Unix里的硬连接,它意思是代替一个版本库里的完整的拷贝,创建一个内部的连接,指向一个具体的版本树。

结果分支和标记就迅速被创建,并且没有在版本库里占据任何额外的空间。

这就需要与VSS及CVS的标签方式进行区别理解。

VSS及CVS不会建立拷贝,只是在当前打的标签版本上做标记属性。

在实际运用过程中可能觉得建立标签比较麻烦,还需要拷贝到另一个目录中,利用每次提交是对整个目录的一次版本的记录的性质,有了日志中标识标签的方法,提交的版本如1422版本确定作为一标签,于是在LO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1