文档库 最新最全的文档下载
当前位置:文档库 › svn版本控制安装使用教材-2019年3月26

svn版本控制安装使用教材-2019年3月26

SVN安装使用教材

作者:郭亚望

归档:学习笔记

2019/3/14

夜月一帘幽梦,春风十里柔情。

目录

第1章SNV的基本操作 (1)

1.1 检出(svn checkout) (1)

1.2 更新操作(svn update) (1)

1.3 提交(svn commit -m “log information” file) (1)

1.4 SVN服务器环境搭建步骤 (1)

1.5 安装服务器端程序 (1)

1.5.1 yum安装 (1)

1.5.2 验证 (1)

1.6 创建并配置版本库 (2)

1.6.1 创建版本库目录 (2)

1.6.2 在版本库目录下创建具体的项目目录 (2)

1.6.3 创建版本库 (2)

1.6.4 版本库内容 (2)

1.7 配置svn对应的服务 (2)

1.7.1 将svn加入开机自启动 (2)

1.7.2 配置对应可执行脚本文件路径 (2)

1.7.3 启动svn服务 (3)

第2章命令行客户端 (3)

2.1 创建两个工作区目录,模拟两个开发人员 (3)

2.2 检出操作 (3)

2.3 添加 (4)

2.3.1 svn要求提交一个新建文件前,先把文件添加到版本控制体系 (4)

2.3.2 认证失败解决办法 (4)

2.4 提交 (5)

2.4.1 再返回去提交就可以成功了 (5)

2.4.2 查看服务器端文件内容 (5)

2.5 更新操作 (5)

第3章冲突 (6)

3.1 冲突的概念 (6)

3.2 冲突的产生 (6)

3.3 冲突的表现 (7)

3.4 冲突的解决办法 (7)

3.4.1 手动解决 (7)

3.4.2 冲突半自动解决办法 (7)

3.5 减少冲突的发生 (7)

第4章分支 (8)

4.1 分支的概念 (8)

4.1.1 分支开发的作用 (8)

4.1.2 分支的相关目录 (8)

第5章SVN权限管理 (9)

5.1 版本库中三个对应的配置文件 (9)

5.1.1 svnserve.conf配置文件 (9)

5.1.2 passwd用户名密码配置文件 (9)

5.1.3 authz分配权限配置文件 (9)

5.2 权限测试 (10)

第6章TortoiseSVN使用 (10)

6.1 TortoiseSVN 安装 (10)

6.2 TortoiseSVN 的使用 (13)

6.2.1 建立一个runoob01 的工作目录 (13)

6.2.2 新增档案及目录到Repository 中add commit (17)

6.2.3 更新档案及目录update (20)

6.2.4 复制档案及目录branch (22)

6.2.5 合并动作merge (25)

6.2.6 制作Tag 或是Release (27)

第1章SNV的基本操作

1.1检出(svn checkout)

就是把服务器端版本库的内容完整的下载到本地,在整个开发中制作一次,并且生成工作副本(.svn)1.2更新操作(svn update)

把服务器端别人修改的内容下载到本地

1.3提交(svn commit -m “log information”file)

把本地修改的内容修改到服务器

1.4SVN服务器环境搭建步骤

1.5安装服务器端程序

1.5.1yum安装

[root@svn ~]#yum install subversion –y

1.5.2验证

[root@svn ~]svn –versione

1.6创建并配置版本库

1.6.1创建版本库目录

[root@svn ~]#mkdir -p /home/svn/svnroot/

1.6.2在版本库目录下创建具体的项目目录

[root@svn ~]#mkdir -p /home/svn/svnroot/pro_oa

[root@svn ~]#mkdir -p /home/svn/svnroot/project_oa

1.6.3创建版本库

[root@svn ~]#svnadmin create /home/svn/svnroot/pro_oa

1.6.4版本库内容

1.7配置svn对应的服务

1.7.1将svn加入开机自启动

[root@svn ~]#chkconfig svnserve on

1.7.2配置对应可执行脚本文件路径

[root@svn ~]#vim /etc/rc.d/init.d/svnserve

33 args=”-emon -oot /home/svn/svnroot -id-file=${pidfile} $OPTIONS”

1.7.3启动svn服务

[root@svn ~]#/etc/init.d/svnserve start

##查看端口号

[root@svn ~]#netstat -lntp |grep 3690

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1539/svnserve

## 查看进程

[root@svn ~]#ps -ef |grep [s]vnserve

root 1539 1 0 08:38 ? 00:00:00 /usr/bin/svnserve --daemon --root /var/svn/repository --pid-file=/var/run/svnserve.pid

第2章命令行客户端

2.1创建两个工作区目录,模拟两个开发人员

[root@kaifa ~]#mkdir -p /root/workspace/harry

[root@kaifa ~]#mkdir -p /root/workspace/sally

2.2检出操作

[root@kaifa ~/workspace/sally]#svn checkout svn://192.168.28.249/pro_oa ./ 取出版本 0。

[root@kaifa ~/workspace/sally]#ls -A

.svn #工作副本,用来和svn服务器进行交互,不要轻易修改

2.3添加

2.3.1svn要求提交一个新建文件前,先把文件添加到版本控制体系

svn add 文件名

[root@kaifa ~/workspace/sally]#svn add hello.txt #先纳入到版本控制体系

A hello.txt

[root@kaifa ~/workspace/sally]#svn commit -m "is commiet hello.txt" hello.txt svn: 提交失败(细节如下):

svn: 认证失败

2.3.2认证失败解决办法

回到svn服务器上修改svnserve配置文件

修改配置文件之前先备份,给自己留条后路

[root@svn ~]#cp /home/svn/svnroot/pro_oa/conf/svnserve.conf

/home/svn/svnroot/pro_oa/conf/svnserve.conf.bak

[root@svn ~]vim /home/svn/svnroot/pro_oa/conf/svnserve.conf

[general]

anon-access = write

2.4提交

2.4.1再返回去提交就可以成功了

[root@kaifa ~/workspace/sally]#svn commit -m "is commiet hello.txt" hello.txt 增加 hello.txt

传输文件数据.

提交后的版本为 1。

2.4.2查看服务器端文件内容

[root@kaifa ~/workspace/sally]#svn list svn://192.168.28.249/pro_oa

hello.txt

2.5更新操作

作用:就是把服务器端文件所产生的所有修改下载到本地

命令:svn update [文件名] 可选

实例2-1别人新创建一个文件更新到本地

[root@kaifa ~/workspace/sally]#cd ../harry/

[root@kaifa ~/workspace/harry]#svn checkout svn://192.168.28.249/pro_oa ./ A hello.txt

取出版本 1。

[root@kaifa ~/workspace/harry]#touch test.txt

[root@kaifa ~/workspace/harry]#svn add test.txt

A test.txt

[root@kaifa ~/workspace/harry]#svn commit -m "is harry commit" test.txt 增加 test.txt

传输文件数据.

提交后的版本为 2。

[root@kaifa ~/workspace/harry]#cd ../sally/

[root@kaifa ~/workspace/sally]#svn update

A test.txt

更新到版本 2。

[root@kaifa ~/workspace/sally]#ll

-rw-r--r-- 1 root root 0 3月 14 14:54 hello.txt

-rw-r--r-- 1 root root 0 3月 14 15:18 test.txt

第3章冲突

3.1冲突的概念

概念:在一个相对服务器端版本来说是旧版本的基础上进行了修改的文件。

要求:所有过时的文件都必须先执行更新操作,更新后在最新版基础上修改的文件才允许提交

3.2冲突的产生

条件1:本地当前编辑的文件已经过时。

条件2:从服务器端更新下来的修改和本地的修改在“同文件同位置”不一致

3.3冲突的表现

发生冲突时文件内代码含有符号

目录内产生多余的三个配置文件

3.4冲突的解决办法

3.4.1手动解决

第一步:删除冲突发生时产生的三个文件

第二步:删除冲突文件内多余的符号

第三步:把文件编辑到满意的的状态

第四步:提交

3.4.2冲突半自动解决办法

第一步:设置SVN_EDITOR环境变量

[root@kaifa ~/workspace/sally]#vim /etc/profile

SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR

[root@kaifa ~/workspace/sally]#source /etc/profile

[root@kaifa ~/workspace/sally]#echo $SVN_EDITOR

/usr/bin/vim

第二步:使用update 更新文件的时候,使用e选项进入文件内容编辑界面

第三步:编辑完文件之后,使用r选项标记为已解决

3.5减少冲突的发生

第一:尽可能在修改文件之前先进行更新操作,尽量在最新版本的基础上修改文件内容第二:尽量减少多人同时修改一个文件的可能性

第三:加强团队成员之间的沟通

第4章分支

4.1分支的概念

在版本控制过程中,使用多个分支同时推进多个不同功能的开发

不分支开发人与人之间协作

使用分支开发团队与团对之间协作

4.1.1分支开发的作用

第一:多个功能开发能够同时进行

第二:任何一个分支上开发失败,可立即删除,不会对其他分支造成影响4.1.2分支的相关目录

trunk

主干

branches

分支

tags

存放项目开发过程中各个里程碑式的代码

说明:如果两个分支各自都有新的内容,需要合并两次才能让他们一致分支1:☆☆☆★★★分支2:☆☆☆○○○

分支1→分支2:

分支1:☆☆☆★★★

分支2:☆☆☆○○○★★★

分支2→分支1:

分支1:☆☆☆★★★○○○

分支2:☆☆☆○○○★★★

第5章SVN权限管理

5.1版本库中三个对应的配置文件

[root@svn ~]#cd /home/svn/svnroot/pro_oa/conf/

[root@svn /home/svn/svnroot/pro_oa/conf]#ls

authz

passwd

svnserve.conf

5.1.1svnserve.conf配置文件

12#anon-access=write 匿名访问

13auth-access=write 授权访问

20password-db=passwd 指定设置用户名密码的配置文件27authz-db=authz 分配权限的配置文件

5.1.2passwd用户名密码配置文件

[users]

# harry = harryssecret

# sally = sallyssecret

例子

tom = 123123

jerry = 123123

kate = 123123

用户名= 密码

5.1.3authz分配权限配置文件

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe kaifa = tom,jerry 例子

用户组= 用户名,用户名

[/] 针对于版本库目录进行权限设置

@kaifa = rw kate = r

* = @组名= 权限值

用户名= 权限值

除上面已经授权的用户以外其他没有任何权限

5.2权限测试

[root@kaifa ~/workspace/sally]#svn list svn://192.168.28.249/pro_oa

第6章TortoiseSVN使用

6.1TortoiseSVN 安装

下载地址:https://https://www.wendangku.net/doc/6611556263.html,/downloads.html, 页面里有语言包补丁的下载链接。

目前最新版为 1.11.0 下载地址:https://https://www.wendangku.net/doc/6611556263.html,/projects/tortoisesvn/storage/1.11.0/

在语言补丁包中我们可以找到中文的补丁并下载下来:

运行下载的TortoiseSVN 安装程序

运行下载的TortoiseSVN 中文语言包

正确安装后,应该进行一次的重开机,以确保TortoiseSVN 的正确无误。

修改TortoiseSVN 默认语言

TortoiseSVN 安装完后默认的界面是英文的,我们可以通过设置修改成已安装语言

6.2TortoiseSVN 的使用

6.2.1建立一个runoob01 的工作目录

所谓的runoob01 目录其实就是您平常用来存放工作档案的地方。通常我们会等到自己的工作做的一个段落的时候再进行备份。所以我们平常都是在runoob01 目录下面工作,等到适当时机在commit 到repository 中。举例来说,我们想在 D 盘下面建立一个名为runoob01 的目录。首先先把这个目录建立出来。

进入创建的目录在空白处按下右键后(您可以在MyWork 目录的icon 上按,也可进入MyWork 目录后,在空白的地方按),选择SVN checkout。

接着您可以看到如下的画面:

首先我们要填入的是repository(版本库)的位置,对于SVN 来说,repository 的位置都是URL。版本库URL 这里填入我们测试的版本仓库地址svn://10.0.4.17/runoob01。

接着,稍微看一下Checkout directory(检出至目录),这个字段应该要指向您的runoob01 目录。

确认后,按下OK 按钮,您应该可以看到如下的讯息窗口。

这样就表示动作完成。按下OK 按钮后,再到您刚刚建立的目录下。您将会看到MyWork 目录下面多了一个名为.sv n的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它) 。

如果您要在一个已经存在的SVN Server 上面checkout 出上面的档案,您只需要给定正确的SVN URL 以及要che ckout 目录的名称。就可以取得指定的档案及目录了。

6.2.2新增档案及目录到Repository 中add commit

创建目录dir01, 在目录里新增文件

将新增的文件加入到SVN 版本控制中,TortoiseSVN 会把准备要加入的档案及目录,勾选需要加入的文件。

相关文档