SVN(subvision)的搭建和配置

一、安装svn服务端

1、下载源码并编译

[root@linux-node3 ~]# yum -y install apr*
[root@linux-node3 ~]# mkdir /svn     #这个是我自定义的安装路径
[root@linux-node3 ~]# cd /usr/local/src/
[root@linux-node3 src]# wget http://www.sqlite.org/2017/sqlite-amalgamation-3190300.zip
[root@linux-node3 src]# unzip sqlite-amalgamation-3190300.zip
[root@linux-node3 src]# wget http://apache.fayea.com/subversion/subversion-1.9.7.tar.gz
[root@linux-node3 src]# tar -xzf subversion-1.9.7.tar.gz
[root@linux-node3 src]# cd subversion-1.9.7
[root@linux-node3 subversion-1.9.7]# mkdir /usr/local/src/subversion-1.9.7/sqlite-amalgamation
[root@linux-node3 subversion-1.9.7]# cp /usr/local/src/sqlite-amalgamation-3190300/* /usr/local/src/subversion-1.9.7/sqlite-amalgamation/
[root@linux-node3 subversion-1.9.7]# ./configure --prefix=/svn  --without-berkeley-db --with-zlib
[root@linux-node3 subversion-1.9.7]# make
[root@linux-node3 subversion-1.9.7]# make install

备注
1、如果不安装sqlite,在编译安装subvision时,提示 configure: error: Subversion requires SQLite, 原因是需要依赖Sqlite。
解决方法:下载sqlite-版本 ,解压后,进入sqlite目录,复制该目录下的所有内容到subvision源码文件sqlite-amalgamation目录下,如果没有sqlite-amalgamation目录,手动新建一个即可。
2、软件包大家从官网上下载去,有些链接时间就了可能会报404的错误,这时需要各位重新从官网找链接下载即可。

2、将其bin目录加入到环境变量中

[root@linux-node3 ~]# cat >> /etc/bashrc << END
export PATH=$PATH:/svn/bin
END
[root@linux-node3 ~]# source /etc/bashrc
[root@linux-node3 ~]# svnserve --version   #查看版本信息

这里写图片描述

二、配置

1、建立版本库目录,可建多个

[root@linux-node3 ~]# mkdir /svn/test1
[root@linux-node3 ~]# mkdir /svn/test2

2、建立版本库

[root@linux-node3 ~]# svnadmin create /svn/test1
[root@linux-node3 ~]# svnadmin create /svn/test2

3、修改版本库配置文件

版本库1:
[root@linux-node3 ~]# grep ^[a-z] /svn/test1/conf/svnserve.conf 
anon-access = none
auth-access = write
password-db = /svn/test1/conf/passwd
authz-db = /svn/test1/conf/authz
realm = /svn/

这里写图片描述
备注:
realm 该选项指定存储库的身份验证域。如果两个存储库具有相同的身份验证域,那么它们应该具有相同的密码数据库,反之亦然。默认的域是存储库的uuid。

版本库2:
[root@linux-node3 ~]# grep ^[a-z] /svn/test2/conf/svnserve.conf 
anon-access = none
auth-access = write
password-db = /svn/test1/conf/passwd
authz-db = /svn/test1/conf/authz
realm = /svn/

4、配置允许访问的用户

[root@linux-node3 ~]# vim /svn/test1/conf/passwd   #文件格式如下

[users]
用户名 = 密码

其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例

[users]
tom = tom
kerry = kerry

注意:对用户配置文件的修改立即生效,不必重启svn。

5、配置用户访问权限

[root@linux-node3 ~]# vim /svn/test1/conf/authz    #文件中定义用户组和版本库目录权限,用户组格式

[groups]
组名 = 用户1,用户2,...

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
[:/项目/目录]
@组名 = 权限

其中,方框号内部分可以有多种写法:

/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/svn/。这样,/就是表示对全部版本库设置权限。
test1:/,表示对版本库1设置权限
test:/abc, ,表示对版本库2中的abc项目设置权限
test:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、rw和空,空表示没有任何权限。
示例:
[groups]
admin = tom,kerry
[/]
@admin = rw
[test1:/abc/aaa]
kerry = rw
[test1:/pass]
kerry = 

注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。

6、启动svn
①建立启动svn的用户

[root@linux-node3 ~]# useradd svn
[root@linux-node3 ~]# chown -R svn:svn /svn 

②启动svn

[root@linux-node3 ~]# svnserve -d --listen-port 3690 -r /svn/test1

其中:
-d表示以daemon方式(后台运行)运行
–listen-port 3690表示使用3690端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /svn/jianjie1指定根目录是/svn/test1
如果是普通用户启动,需要su - svn -c "svnserve -d --listen-port 3690 -r /svn/test1"

③检查

[root@linux-node3 ~]# ps -ef|grep svn

这里写图片描述

需要注意的问题:
服务器已经显示启动了svn,但是客户端访问不了。
问题可能是linux的防火墙导致,查看iptables的配置,开放svn的服务器端口。

7、将svn代码导出导入的操作

①备份以前的SVN库
#svnadmin dump /svn/test1 > /root/test/test1.svn     #test1.svn是自定义的名字,前面是路径,如果没有需要自己创建
②把备份出来的数据恢复到本地
#svnadmin load /svn/test2/ < dump的file   #在这里是/root/test/test1.svn
③还原
#svnadmin load newrepo

三、SVN客户端的安装

1、从百度上搜索 TortoiseSVN,然后根据自己操作系统版本将客户端下载下来,并安装
2、建立版本库的文件夹,然后进入到里面,右击 –> SVN Checkout –> 输入用户名和密码 即可
这里写图片描述

这里写图片描述

3、如果想清除用户和密码信息
右击 –> TortoiseSVN –> Settings –> Saved Data –> Clear all
这里写图片描述

这里写图片描述

4、这样就将svn的代码获取下来了,效果如下
这里写图片描述

5、在svn服务器端加目录

右击 --> TortoiseSVN --> Repo-browser --> 然后在弹出的窗口上右击 --> Create folder
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值