Linux系统下的SVN Server安装、配置及使用方法

在Linux操作系统下安装版本控制工具SVN服务器,SVN默认端口为3690,记得在防火墙中放行此端口,如果使用阿里云的,要在阿里云后台的安全策略中写入此端口的规则。

一、SVN安装步骤

0.验证是否有svnserver (svnserve –version)
1.安装svnserver (yum install -y subversion)
2.验证是否安装成功 (svnserve –version)
3.进入到svn的资源目录 (cd /home/svndir)
4.创建svn资源库 (svnadmin create myProject)
5.新增用户
6.配置用户权限
7.配置资源库权限
8.启动或者重启
9.测试

二、SVN安装与配置图文说明(单版本库)

0.验证是否安装,图下是未安装的

678002-20161212171527542-426687168

安装过的如下图

678002-20161212171601026-1518867768

1.安装

678002-20161212171618011-1247522793

2.重新验证

3.进入到svn的资源目录 (cd /home/svndir),创建svn资源库 (svnadmin create myProject)

678002-20161212171647901-1915011286

4.进入到资源中

678002-20161212171710761-516198528

conf 配置文件所在的目录

5.进入到配置文件夹中

678002-20161212172251401-306482898

authz 是权限相关的配置

passwd 是帐号相关的配置

svnserve.conf 是资源库相关的配置

6.新增用户

编辑passwd文件,在users下添加用户,格式为 用户名 = 密码

678002-20161212172302073-1983061365

678002-20161212171910979-603793260

7.配置用户权限

编辑authz文件,在[/] 下添加权限, 格式为 用户名=权限 (rw) 为读写权限

678002-20161212172345511-872853191

8.配置资源库权限

编辑svnserver.conf文件,如下

678002-20161212172452120-2077818022

9.启动或者重启

如果是第一次启动 直接执行命令 svnserver -d -r 目录(可以是绝对路径)

678002-20161212172541261-1111298995

如果是重启 首先执行kill

678002-20161212172757558-1273244263

10.测试

上传一个文件测试

678002-20161212172813823-1770303577

结果如下:

678002-20161212172825995-2139258041

到此一个svn server已经搭建好了

l  备注

1)、如果出现无法连接服务器的提示,请确保远程svn服务器的3690端口可以访问

856016-20161112110629936-1829659917

修改svnserve配置并设置开机启动

856016-20161112110706358-7486661

将 /var/svn改成自己的代码库的目录(如果是多库,则使用总目录)

设置开机自启

三、svn多版本库配置方法

1、在指定目录建立仓库总目录,目录位置没有严格要求。

2、在总目录下建立N个版本库。

3、进入warehouse1 目录下的conf文件夹。将其中的authz与passwd文件复制到svnrepos目录下

4、修改warehouse1/conf下的svnserve.conf文件,将其中的passwd文件制定与authz文件制定进行修改,其他配置按正常单svn配置。(warehouse2同样设置一遍)

20180923115236

5、修改复制出来的/svnrepos目录下的passwd文件与authz文件
authz文件:设置用户组和用户名

20180923115920

passwd文件:设置用户密码

20170811111912770

6、启动SVN,如果之前有启动,那就kill掉所有svnserve进程后再启动SVN

 

7、仓库1的检出地址为:svn://ip地址/warehouse1
仓库2的检出地址为:svn://ip地址/warehouse2

四、svn的使用

1,启动SVN

其中 -d 表示守护进程, -r 表示在后台执行
/home/data/svn/  为svn的安装目录
/home/svndata/   是svn版本库的根目录,下面可以建多个库
如果立版本库,则使用这个目录(/home/data/svn/)启动SVN服务
2,关闭SVN
这里采取linux杀死进程的方式处理的

这里  kill -9 4967杀死进程, 此4967为进程号

3,创建两个源码目录(开发的源码和发布的源码),可以导入同一个源

4,导入项目源代码 # svn import [源路径][目标版本库路径] -m [日志信息]
//例如:
ps:源代码要是别的项目拷贝过来的,请删除原来的.svn文件,不然你会悲剧的

5,复制钩子文件模板(版本库/hooks)

6,编辑 post-commit 钩子文件

7,删掉除了第一行 #!/bin/sh 之后的所有文件 然后输入

8,重要一步,修改post-commit文件的权限

9,检出版本库中代码到网站根目录

附:错误提示

1、启动svnserve时,出现错误提示:

svnserve: E000098: Can’t bind server socket: Address already in use

svnserve:E000098:不能绑定服务器套接字:已经在使用的地址

解决办法:
停止所有svnserve服务,
命令:killall svnserve
之后再重启svnserve,
命令:svnserve -d -r /home/svndata/

.