高效使用SVN的指南篇_第1页
高效使用SVN的指南篇_第2页
高效使用SVN的指南篇_第3页
高效使用SVN的指南篇_第4页
高效使用SVN的指南篇_第5页
已阅读5页,还剩56页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

SVN操作手册

2023年12月09日

变更记录

变更记录

第1章

简介..........................................................1

第2章

SVN服务端...................................................2

2.1

安装VisualSVN...................................................................................................2

2.2VisualSVN服务................................................3

2.3版本库.........................................................4

创立版本库..................................................5

删除版本库..................................................6

2.4顾客和顾客组...................................................6

创立顾客....................................................6

创立顾客组..................................................7

分派权限....................................................8

第3章

SVN客户端..................................................11

3.1安装TortoiseSVN..............................................................................................11

3.2Import(导入)................................................11

3.3

Export(导出)............................................13

3.4

Checkout(检出)..............................................14

两个版本...................................................14

3.5删除文献.....................................................15

3-6重命名文献...................................................16

37

增长文献.................................................16

38

.移动文献.....................................................17

3.9

Commit(提交).........................................17

non-versioned文献...........................................18

versioned文南1.............................................................................................20

3.10

Update(更新).........................................21

3.11

冲突........................................................22

文献冲突..................................................22

0

树冲突....................................................27

3.12Properties(属性)............................................28

第1章

简介

第1章简介

SVN是Subversion欧)缩写,它是一款版本管理软件。所谓版本管理软件,

首要的功能就是存储文献。此外,它还记录了这些文献日勺版本信息,顾客可以

查看各个版本之间日勺差异,也可以提取某一文献日勺任一种历史版本。

SVN采用C/S构造,即:客户/服务器构造。在客户端,使用日勺是Tortoise

SVN;在服务器端,假如是Windows系统,可以使用VisualSVNo

1

第2章

SVN服务端

第2章SVN服务端

SVN服务端日勺配置有多种方案:可以安装Svnserve服务,也可以安装Ap

ache服务,但最简朴的莫过于使用VisualSVNServer这个程序。

2.1安装VisualSVN

运行安装程序,如:°在SelectComponents

(选择组件)界面下,请选择第一项uVisualSVNServerandManagementCo

nsolewo单击"Next"按钮。

图2.1

选择VisualSVN安装组件

接下来口勺界面如F:

2

第2章

SVN服务端

图2.2

VisualSVN安装选项

Location表达VisualSVN/、J安装目录;

Repositories表达版本库[1勺位置。所有文献、代码、版本信息都将存在这里。

VisualSVN服务采用两种协议:协议和s协,议。后者是通过加密犯

因此推荐使用它。勾中“Usesecureconnection^s:〃)”复选框就意味着使用

s协议。

不管协议还是s协议,都需要一种ServerPort(服务端口)。除非

这个端口已经被占用,否则请尽量采用默认值。

Authentication表达认证。服务器上版本库的内容不是任何人都可以访问

的,需要客户端顾客登录后才能访问。顾客登录有两种方式:使用SVN认证或

使用Windows认证。推荐使用第一项uUseSubversionauthenticationw,即SV

N认证。

单击“Next”按钮,再单击“Install”按钮,完毕VisualSVN/、J安装。

2.2

VisualSVN服务

3

第2章

SVN服务端

在Windows上安装VisualSVN之后,VisualSVNServer也就被安装并启动

了。单击开始菜单日勺【运行】菜单项,输入services.msc后单击“确定”按钮。

图2.3

运行services.msc

Windows显示如下。可以看到VisualSVNServer已经被启动。启动类型为

“自动”,因此下次启动Windows后该服务会自动运行。因此,服务器无需运

行VisualSVN即可实现客户端对服务器端版本店的访问。

图2.4

Windows服务

2.3版本库

版木库就是寄存文献、代码及版本信息口勺地方。服务器针对某一项目创立

版本库后,客户端才能访问该项目的文献、代码。因此在服务器上创立、删除

版本库是十分重要日勺工作。

4

第2章

SVN服务端

创立版本库

运行VisualSVN,在其主界面下使用鼠标右犍单击Repositories(版本库),

在弹出菜单里单击【CreateNewRepository...】菜单项。

图2.5

创立版本库菜单

VisualSVN显示如下界面。请输入新的I版本库名称后,单击“OK”按钮即

可完毕版本库区I创立。注意“Createdefaultstructure(trunk,branches,tags)”这个

复选框,勾中它之后再单击“0K”按钮,将在新建版本库里创立trunk>brane

hes>tags这三个子目录。

图2.6

创立版本库界面

5

第2章

SVN服务端

新建版本库后,VisualSVN主界面下将能看到这个新建日勺版本库,详见下

图:

图2.7

新建的版本库

删除版本库

在图2.7中,鼠标右键单击Test版本库,然后在弹出菜单里单击【删除】按

钮,即可完毕Test版本库的删除。注意:删除版本库是无法撤销欧I,请谨慎处

理。

2.4顾客和顾客组

安装过程的图2.2中,提到了SVN认证。下面将简介怎样创立顾客、顾客组,

并针对某个版本库给顾客、顾客组分派权限。这样客户端顾客才能输入顾客名、

密码,完毕SVN认证,进而访问自己需要的资料。

创立顾客

假定目前某个软件项目有两组人员:开发组『、JDOI、D02、D03;测试组的

TOI、T02、T03o首先增长顾客D01。鼠标右键单击下图『、J"Users”,在弹出

菜单里单击【CreateUser...】菜单项。

6

第2章

SVN服务端

图2.8

创立顾客菜单

VisualSVN显示如下界面。请输入Username(顾客名)为D01,再输入P

assword(密码)和Confirmpassword(确认密码),单击“OK”按钮即可完毕

顾客D01的创立。

图2.9

创立顾客界面

注意上图的IaUsernameandpasswordarecasesensitiven,它表达顾客名

和密码都是辨别大小写日勺。

使用相似的措施增长开发组的D02、D03和测试组的TOI、T02、T03。

创立顾客组

7

第2章

SVN服务端

下面将创立顾客组Developer,并将顾客DOI、D02、D03加入该组。鼠标

右键单击下图的I"Groups”,在弹出菜单里单击【CreateGroup...】菜单项。

图2.10

创立顾客组菜单

VisualSVN显示如卜,图所示。请输入Groupname(顾客组名)为Develop

er,再单击“Add”按钮增长DOI、D02、D03这三个顾客。单击“OK”按钮

完毕顾客组Developer的)创立。

图2.11

创立顾客组界面

使用相似措施可以创立测试组Tests,并将TOkT02、TO3加入改组。

分派权限

8

第2章

SVN服务端

针对Test版本库,需要设置开发组Developer和测试组Tests日勺权阳。鼠标

右键单击Test版本库,单击弹出菜单中日勺[Properties...]菜单项。

图2.12

设置权限菜单

VisualSVN显示如图2.13所示。首先选择Everyone,将其权限设置为NoAc

cesso其用意为:任何人都不能访问Test版本库。然后单击“Add..."按钮,增

加Developer和Tests顾客组。图2.13所示界面下,设置Develope山勺权限为Read/

Write,设置Tests日勺权限为ReadOnly。这样开发经就可以读写Test版本库,而测

试组只能读取Test版本库。

假定开发组日勺D03是个新手,不容许他进行写操作,则应当再次设置D03

的权限。图2.13中,单击“Add...”按钮,增长D03顾客。然后设置D03的权限

为ReadOnly。

9

第2堂

SVN服务端

图2.13

设置权限界面

10

第3章

SVN客户端

第3章SVN客户端

SVN客户端为TortoiseSVN,安装之后就可以访问服务器端的版本库。读

取项目文献、代码,还可以将修改后的文献、代码上传到服务器上,与项目组

组员共同维护项目文献、代码。

3.1安装TortoiseSVN

运行安装程序,如:。其安装

环节比较简朴,这里就不赘述了。下文日勺讲解以该版本为准。

假如需要,可以安装TortoiseSVN的简体中文语言包,如:LanguagePack_

o这样,使用TortoiseSVN时就可以灵活设置语言。

3.2Import(导入)

导入、导出是以服务器上的版本库为中心的。导入就是将项目文档写入版

本库。Windows资源管理器中,鼠标右键单击要导入的文献夹。在弹出菜单中,

单击【TortoiseSVN】下的[Import...)菜单项。

图3.1

导入菜单

II

第3章

SVN客户端

TortoiseSVN显示如下界面。在URLofrepository下输入版本库的地址。

在Importmessage下输入导入信息。单击“0K”按钮。

图3.2

导入设置界面

进入SVN认证界面。输入顾客名和密码后,单击“0K”按钮完毕认证。

注意顾客名和密码都是辨别大小写欧I。假如觉得每次都要输入顾客名和密码比

较繁琐,请勾中“Saveauthentication”复选框。下次SVN会自动完毕认证。

图3.3

认证界面

12

第3章

SVN客户端

SVN完毕认证后,会将选定日勺文献夹内容导入到版本库中。

需要阐明欧I是

1、一般只是在项目开始日勺时候才会用到导入功能;

2、假如待导入的文献或文献夹在版本库内已经存在,则导入会失败。也就

是说不能反复导入;

3、目录问题。一次只能导入一种文献夹。假如导入的文献夹为Foldero导

入到版本库时不会有Folder这个文献夹;

3.3

Export(导出)

导出就是将项目文档从版本库中提取出来。Windows资源管理器中,单击

鼠标右键。在弹出菜单中,单击【TortoiscSVN】下的[Export...]菜单项。SV

N显示如下。

图3.4

导出界面

在URLofrepository卜输入版本库『'J地址。在Exportdirectory下输入本

机寄存目录。导出深度有四个选项,分别为:

Fullyrecursive(深度递归):导出指定目录下的文献、各级子目录以及各

13

第3章

SVN客户端

级子目录下日勺文献。也就是所有导出。默认就是选择该项;

Immediatechildren,includingfolders(直接子节点,包括文献夹):导出指

定目录下的文献和一级子目录,但不导出一级子目录内日勺文献;

Onlyfilechildren(仅文献子节点):只导出指定目录下日勺文献,不导出一

级子目录及一级子目录内的文献。

Onlythisitem(仅此项):只导出指定目录。导出后就是一种空目录,没

有什么实际意义。

Revision是版本的意思。项目组里任何一人修改了文档,上传到服务器上

后都会形成一种新日勺版本,也就会有一种新日勺版本号。HEADrevision表达最

新日勺版本,也可以输入指定日勺版本号。

配置好后,单击“OK”按钮。

假如本机寄存目录不为空,SVN会弹出如下信息。单击“Yes”继续导出。

图3.5

本级目录不为空

由于要和服务器通讯,因此与导入同样,需要进行顾客认证。认证界面如图

3.3所示。完毕顾客认证后,SVN会将版本库里的文档复制到本机。

3.4

Checkout(检出)

Windows资源管理器中,单击鼠标右键。在弹出菜单中,单击【SVNChc

ckout...]菜单项。剩余的I环节与导出大体相似。

两个版本

既然有导出功能了,还要检出做什么呢?由于与导出不一样,检出的文档有

两份。一份是顾客能看到、修改日勺文档,被称之为WorkingCopy,如下简称C

opy版;另一份是被隐藏在.SVN文献夹下日勺文档,被称之为WorkingBASE,

14

第3章

SVN客户端

如下简称BASE版。假如有Copy版的文献l.lxt,则其对应的BASE版文献为.

。l.txt有两份,被称之为versioned文献。假如顾客

将2.txt复制到检出目录,则2.txt只有一份,被称之为non-versioned文献。

当顾客修改了C叩y版的文档,上传到服务器版本库日勺时候。SVN会比较

Copy版和BASE版有什么不一样之处,然后只将顾客的修改信息上传至服务器。

当顾客修改了Copy版的文档,该文档的图标会被变化。这也是SVN比较

Copy版和BASE版日勺成果。

versioned文献有两个版本,因此对它日勺删除、重命名、移动必须通过SV

N来完毕,下面几节将简介这些操作。

3.5删除文献

资源管理器中,鼠标右键单击待删除的文献,单击弹出菜单日勺[Tortoises

VN][Delete]菜单项即可完毕删除操作。

图3.6

删除文献

15

第3章

SVN客户端

3.6重命名文献

资源管理器中,鼠标右键单击待重命名日勺文献,单击弹出菜单时[Tortois

eSVN]Rename...]菜单项。SVN显示如下界面。输入新的文献名后,单击“0

K”按钮即可完毕重命名操作。

图3.7

重命名文献

3.7增长文献

检出目录里日勺non-versioned文献可以增长至BASE,变成versioned文献。

资源管理器中,选中若干项文献或文献夹。鼠标右键单击某一选中项。单

击弹出菜单日勺[TortoiseSVN][Add...]菜单项。SVN显示如下界面。单击“O

K”按钮即可完毕增长操作。

图3.8

增长文献

需要注意的是这个增长只是增长到本机日勺BASE,而不是直接增长到服务

16

第3章

SVN客户端

器日勺版本库中。

3.8移动文献

资源管理器中,选中若干项文献或文献夹。移动鼠标至某一选中项,按下

鼠标右键不放,移动鼠标至目『、J文献夹再放开鼠标右键。会弹出SVN右键菜单。

下面两张图片一种是移动多种文献的,一种是移动单个文献日勺。

图3.9

移动多种文献

图3.10

移动单个文献

SVNMove……的含义是移动文献。SVNCopy……的I含义是复制并增长文

件。SVN……andrename是移动或复制文献之后再重命名。

3.9

Commit(提交)

当顾客对检出H勺文档做了修改后,需要将修改信息上传到服务器H勺版本库

里,以便项目组H勺其他组员共享。这个上传的过程就是提交。

Windows资源管理器中,鼠标右键单击要提交日勺文献夹。在弹出菜单中,

17

第3章

SVN客户端

单击[SVNCommit...]菜单项。SVN显示如下界面:

图3.11

提交界面

message中写入你对项目文档都做了哪些修改。一定要养成填写该项的好

习惯,以便项目组其他组员清晰项目都发生了那些变化。

Changesmade下内列表列出了哪些文献被变化了。变化日勺文献分为两大

类:一类是在Copy版中存在,但在BASE版中不存在日勺文献,即non-versione

d文献;另一类是在BASE版中存在的文献,即versioned文献,其Textstatus

有也许是modified(修改)、added(增长)、deleted(删除)...

列表中勾中要提交日勺文献,单击“OK”按钮即可完毕提交操作。提交过程

中也许会产生冲突,其处理措施请参照“冲突”这一节。

3.9.1non-versioned文献

对于non-versioned文献,SVN默认不提交至服务器。下次提交的时候,如

18

第3章

SVN客户端

果但愿某个non-versioned文献不再出目前列表中,其措施就是忽视。

提交界面(图3.11)中,鼠标右键单击一种non-versioned文献夹,弹出菜

单中有[Addtoignorelist]o它有两个选项,一种是文献夹自身,另一种是A

前者表达忽视该文献夹,下次提交时该文献夹将不再显示在列表里。后者表达

忽视所有non-versioned文献,下次提交时所有日勺non-versioned文献将不再显示在

列表里。显然忽视*是应当谨慎使用的。

图3.12

忽视文献夹

提交界面(图3.11)中,鼠标右键单击一种non-versioned文献,弹出菜单

中有[Addtoignorelist]。如下图为例,它有两个选项,一种是文献自身,另

一种是*.pch。前者表达忽视该文献,下次提交时该文献将不再显示在列表旦。

后者表达忽视所有扩展名为pchH^Jnon-versioned文献,下次提交时这些文献将不

再显示在列表里。应当谨慎使用后者。

19

第3章

SVN客户端

图3.13

忽视文献

忽视FJ文献信息被写入.SVN目录,详细请参照“Properties(属性)”。

VC++项目中,有些文献无需提交,如:*.aps、*.ncb、*.plg、*.clw.......可

以将这些文献忽视。此外,编译会产生大量日勺中间文献。可以将这些中间文献

所在文献夹忽视。

3.9.2versioned文献

对于versioned文献,SVN默认将其提交至服务器。假如下次提交的时候,

不但愿提交某个versioned文献,其措施就是将其移动到提交忽视列表。

提交界面(图3.11)中,鼠标右键单击一种versioned文献,单击弹出菜单

中日勺[Movetochangelist][ignore-on-commit]菜单项即可将该文献移动到提

交忽视列表。操作界面见图3.14。

移动到提交忽视列表中日勺文献,可以从该列表中移除。见图3.15,鼠标右

键单击ignore-on-commi洌表中欧I一种文献,单击弹出菜单中区][Removefrom

changelist]菜单项。

有些软件项目中会有配置文献。每运行一次软件,配置文献均有也许会被

改动。这些文献需要上传至版本库,但每次修改后无需更新。此时,最佳的办

法就是将其移动到提交忽视列表。

20

第3章

SVN客户端

图3.14

移动至提交忽视列表

图3.15

从列表中移除

3.10Update(更新)

一种软件项目组有多种组员。组员A修改代码并提交之后,组员B怎样获

得最新版本?措施就是组员B需要更新当地代码。

Windows资源管理器中,鼠标右键单击检出内项目目录。在弹出菜单中,

单击【SVNUpdate】菜单项。由于要和服务器通讯,因此需要进行顾客认证。

认证界面如图3.3所示。完毕认证后,SVN将更新当地文献为最新版本。

注意:更新过程中也许会产生冲突,其处理措施请参照“冲突”这一节。

21

第3章

SVN客户端

3.11冲突

多人维护一套代码,如下状况是难免的:

1、程序员A和程序员B都修改/文献1.1x1,然后都向版本库提交。版本

库不懂得以哪个版本为准,这会产生文献冲突;

2、程序员A修改了文献l.txl,向版本库提交时发现文献l.txl已经被程序

员B删除了或重命名了或移动到别H勺目录了,这会产生树冲突。

文献冲突

文献冲突比较简朴,就是多种组员对同一文献进行了修改,版本库不懂得

该以哪个版本为准。对于文献冲突,这里分两种状况阐明。

文本文献

假定项目里有文献l.txt,其内容如下:

[开发组]

王二

[测试组]

李四

项目组员A负责维护开发组组员名单,项目组员B负责测试组组员名单。

目前开发组增长了“张三”,测试组增长了“王五”。于是A修改l.txt为

如下内容,并提交至版本库。

[开发蛆]

王二

张二

[测试组]

李四

B修改l.txt如下:

[开发组]

王二

[测试组]

李四

第3章

SVN客户端

王五

当B提交的时候,就会出错。其出错界面如下:

图3.16

提交出错

上图阐明l.txt已经被人修改,需要先更新。组员B按提醒规定Updale了

本机代码,其界面如下。

图3.17

合并文献

请注意Merged这个单词,它表达SVN将版本库最新版本的l.txt和B修

改的l.txt合并了。合并的成果如下,其内容正是A、B期望得到的成果。注意

这个最新的文献只保留在B的本机上,需要B提交后版本库里的l.txt才能得

23

第3章

SVN客户端

到更新。

[开发组]

王二

张三

[测试组]

李四

王五

也就是说,对于文本文献,SVN有合并能力。它能将项目组组员日勺改动集

中起来,减少了文献冲突的发生。不过SVN的合并不是万能的I。假如B对Lt

xt做了非常大的改动,Update的时候将无法合并,并产生冲突,见下图

图3.18

更新时文献冲突

冲突发生的I时候,资源管理器里l.txt有四个版本。其中三个见下图,另一

个版本为,即更新后的BASE版。

图3.19

冲突文献有四个版本

这四个文献的区别请见下表。注意:假如在资源管理器里发现了

e文献,则阐明TortoiseSVN版本太低了,请升级至

或更高日勺版本。

24

第3章

SVN客户端

表3.1

四个文献的区别

既然发生了冲突,就需要处理它。组员B有三个方案:

1)完全信任自己,坚持自己所做的修改。其操作措施为:

在图3.18所示口勺界面下,鼠标右键单击l.txt,将弹出如下菜单。单击【Re

solveconflictusing'mine']或[Markasresolved]菜单项即可。

图3.20

冲突右键菜单

假如图3.18所示的界面被关闭,请鼠标右键单击图3.19日勺l.txt文献,单击

弓单出菜单里日勺[TortoiseSVN)【Resolved...)菜单项«

这样操作实质上就是删除了和这两个文献。此外,修改了

文献.svn\entries,将里面的I和删除了。

2)完全信任版本库,放弃自己所做的任何修改。其操作措施为:

在图3.18所示的界面下,鼠标右键单击l.txt,将弹出图3.20所示的菜单。

单击【Resolveconflictusing"theirs"]菜单项即可。

假如图3.18所示的界面被关闭,请鼠标右键单击图3.19口勺l.lxt文献,单击

25

第3章

SVN客户端

弹出菜单里日勺[TortoiseSVN][Revert...]菜单项。Revert的含义是还原,就是

放弃一切修改。本质上就是用BASE版覆盖Copy版。

这样操作实质上就是使用HEAD版覆盖Copy版,然后又删除了和

这两个文献。

3)折衷方案就是对l.txt进行合并修改。SVN默认使用TortoiseMerge合并。

在图3.18所示的界面下,鼠标右键单击l.txt,将弹出图3.20所示日勺菜单。

单击(Editconflicts]菜单项。

假如图3.18所示的界面被关闭,请鼠标右键单击图3.19日勺l.txt文献,单击

弹出菜单里日勺[TortoiseSVN

温馨提示

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

评论

0/150

提交评论