Linux搭建SVN服务器详细教程

article/2025/11/7 10:45:34

前言

本文讲解 Linux 系统下如何搭建 SVN 服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置。

 

SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现最终集中式的管理。

目前很多互联网公司在使用 SVN,优点在于使用方便、易于管理。与之对应的分布式的版本控制系统 Git 则更加灵活。

搭建

安装 SVN

//Ubuntu
apt-get install subversion//Centos
yum install subversion

 查看是否安装成功,可以查看版本。

svnserve --version

 

提示版本 1.13.0,说明已安装成功。

创建版本库目录

创建 SVN 版本库目录,为后面创建版本库提供存放位置,也是最后启动 SVN 服务的根目录。

我们在 /usr 路径下创建 svn 目录作为版本库目录。

cd /usr
mkdir svn

Linux 系统各目录知识延伸:

所以,将 SVN 库存放在用户文件目录 /usr 下比较合理。

创建 SVN 版本库

在上一步建立路径基础上,创建版本库,如 dev。

cd /usr/svn
svnadmin create dev

 创建成功后,可以查看到 dev 目录下生成的文件。

修改 SVN 配置

进入 conf 目录,查看需要修改的配置文件。

cd /usr/svn/dev/conf
ls

 

配置文件:

  • authz:权限配置文件,控制读写权限
  • passwd:账号密码配置文件
  • svnserve.conf:svn 服务器配置文件

修改 svnserve.conf 文件

vim svnserve.conf

 

去掉 anon-access、auth-access、password-db、authz-db、realm 几项前的注释符号 “#”。

配置项含义:

  • anon-access = none|read|write 决定非授权用户的访问级别。none 表示无访问权限,read 表示只读,write 表示可读可写,默认为 read。
  • auth-access = none|read|write 决定授权用户的访问级别,使用与上面相同的访问级别。默认为 write。
  • password-db = filename 指定账号密码数据库文件名。filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为 passwd。
  • authz-db = filename 指定权限配置文件名,filename 是相对仓库中 conf 目录的位置,也可以设置为绝对路径,默认为 authz。
  • realm = realm-name 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的账号密码数据库文件 passwd。

认证域知识延伸:

在 SVN 客户端登录时,会提示 realm 认证域,如下图的认证域 My First Repository

 

修改 passwd 文件

vim passwd

 

只需在末尾添加账号和密码,格式 账号 = 密码,如 user1 = 123456,可添加多个。

修改 authz 文件

vim authz

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== 编辑

如果用户比较多,可以使用 groups 形式设置分组 team1,并在根目录下指定分组 @team1 的权限:

如果想设置其他用户的权限,可以通过 * 设置,如设置除 @team1 分组外其他用户只读权限:

[/]
@team1 = rw
* = r

 

启动 SVN 服务

执行 SVN 启动命令,其中参数 -d 表示以守护进程的方式启动, -r 表示设置的根目录。

svnserve -d -r /usr/svn/

 关闭 svn 命令:

killall svnserve

本地访问 SVN 服务

在 windows 系统中,安装 TortoiseSVN 软件,创建一个本地目录,右键选择 SVN Checkout 测试下,URL 填写 svn://IP/dev,dev 替换成你创建的版本库名称。

输入 passwd 配置好的用户。

 

Checkout completed,SVN 访问成功,这就 Nice 了~

 

扩展

设置查看 log 日志

想查看提交的 svn log 日志,需要进一步配置。

编辑 svnserve.conf,设置:
 

anon-access = none

编辑 authz 文件中添加:

[/]
* =

 

这样通过鼠标右键 TortoiseSVN->show log 就可以查看 svn 提交的历史记录了。

多个项目管控配置

SVN 配置文件是很灵活的,如果想使用统一的账户和权限去管控多个项目,可以将多个项目的 authz 和 passwd 文件统一放在一处,在多个项目的 svnserve.conf 文件中配置这两个文件的绝对路径,并在 authz 中对不同的项目设置用户访问权限。

如:a、b、c、d 这 4 个用户,p1、p2 两个项目,其中 a、b 只能访问 p1,c、d 只能访问 p2。

创建版本库目录

mkdir /usr/svn

创建多个版本库

cd /usr/svn
svnadmin create p1
svnadmin create p2

 创建管理用户权限目录

mkdir /var/svn/conf
cd /p1/conf
cp authz passwd /var/svn/conf

修改配置文件

修改 p1 的 svnserve.conf 文件:

anon-access = none
auth-access = write 
password-db = /var/svn/conf/passwd 
authz-db = /var/svn/conf/authz 
realm = p1 

 修改 p2 的 svnserve.conf 文件:

anon-access = none
auth-access = write
password-db = /var/svn/conf/passwd
authz-db = /var/svn/conf/authz
realm = p2

password-db 和 authz-db 都使用统一管理用户权限目录,使用绝对路径。

修改 password-db 文件

[users]
a = 123
b = 123
c = 123
d = 123

修改 authz 文件

[groups] //分组
p1user = a,b
p2user = c,d[/]
* = #以上没有定义的用户都没有任何权限[p1:/] //p1的访问控制,c、d无法访问
@p1user = rw[p2:/] //p2的访问控制,a、b无法访问
@p2user = rw

对 password-db 和 authz 文件的修改立即生效,不必重启 svn。

启动 svn 服务

svnserve -d -r /usr/svn/

 访问不同项目 SVN

同样 TortoiseSVN 软件,选择 SVN Checkout 测试。

访问项目p1 URL
svn://IP/p1访问项目p2 URL
svn://IP/p1

统一的配置文件,不同项目限定了不同用户访问,这样就实现了管控多个项目的 SVN 配置。

以上就是 Linux 系统搭建 SVN 服务器详细教程的所有内容,希望对大家有所帮助。

 


http://chatgpt.dhexx.cn/article/OD6tB38Q.shtml

相关文章

Linux测试环境搭建步骤

Linux测试环境搭建步骤 准备工具: SecureCRT工具(Linux工具,连接服务器) FTP传输工具(上传文件到服务器) MySQL连接工具 安装包(以下文件均为压缩包rpm格式和tar.gz)&#xff1a…

测试环境服务器搭建

1.确定文件目录 主要通过df命令和du命令确定好磁盘大小以及磁盘使用情况,和磁盘剩余大小来判断项目以及软件安装到哪个目录 1.1df命令 df命令主要用来判断磁盘空间大小,使用情况、剩余情况,要看df的参数使用df --help查看即可,…

软测_1环境搭建

环境搭建 vm虚拟机下载地址以及测试所用到的软件 链接:https://pan.baidu.com/s/10HqWU23pXvOgUOULMsL2wA?pwdkm67 提取码:km67 阿里网盘可能会快一点 https://www.aliyundrive.com/s/NBt6Ka5yi91 苹果系统下载vmware 官网地址 解决办法 https://baiji…

linux中测试环境的搭建

1.VMware虚拟机的安装 参照:虚拟机VMware的下载与安装——详细教程_沐雨风栉的博客-CSDN博客_vmware下载安装教程 2.centos系统安装 参照:CentOS 的安装——超详细教程_沐雨风栉的博客-CSDN博客_centos安装 3.jdk安装 参照:Linux搭建测试…

软件测试环境的搭建及详解

前言 测试环境是QA开展测试工作的前置条件。稳定和可控的测试环境,可以使测试人员在执行测试用例时无需花费额外的时间去维护。有些公司运维或者研发部门会帮忙准备好测试环境,但是QA如果一味依赖其他部门,会局限测试工作的开展。 一、什么是…

如何搭建靠谱的测试环境

今天给大家分享测试环境的搭建与维护。 搭建良好的测试环境是执行测试用例的前提,也是完成测试任务顺利完成的保证。测试环境大体可分为硬件环境和软件环境,硬件环境包括测试必须的PC机,服务器,设备,网线,分…

面试题:关于搭建测试环境 (一)

最近去面试的时候遇到一个问题。 问我测试环境是怎么搭建的。 先别嘲笑我,我会自省3天。 作为一个测试人员,事实上,我真的从来没有完完全全是搭建一个测试环境。 更搞笑的是,我居然还停留在说保证什么运行平台,保证…

如何自己搭建测试环境

如何搭建测试环境? 1.我们主要安装三个软件 在Windows 10下搭建测试环境,需要安装tomcat。tomcat是一款主要用来web容器,作为中转站,用来解析和进行返回数据打包。 而tomcat是Java语言开发的软件,因为jak是Java语言的…

Linux搭建测试环境步骤

Linux搭建环境基础步骤 准备工具: SecureCRT工具(Linux工具,连接服务器) FTP传输工具(上传文件到服务器) MySQL连接工具 安装包(以下文件均为压缩包rpm格式和tar.gz):…

Linux搭建测试环境(耗巨时制作全教程)

文章目录 前言一、安装dcoker1.1 安装yum工具1.2更新本地的镜像源1.3 安装docker1.4 启动docker1.5 配置镜像加速 二、安装nginx2.1 按照nginx的依赖包,一键安装2.2 下载并解压安装包2.3 安装nginx2.4 启动nginx服务2.5 编辑nginx的配置文件nginx.conf2.6 重启nginx…

如何搭建一个好的测试环境

测试环境在软件项目中的重要性不言而喻,测试环境独立及是否稳定直接影响了项目的进度。 测试环境(Testing environment)是指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称。简单的说,经过良好规划和管…

软件测试测试环境搭建很难?一天学会这份测试环境搭建教程

如何搭建测试环境?这既是一道高频面试题,又是困扰很多小伙伴的难题。因为你在网上找到的大多数教程,乃至在一些培训机构的课程,都不会有详细的说明。 你能找到的大多数项目,是在本机电脑环境搭建环境,或是…

测试环境的搭建

JDK的搭建 1.下载jdk1.8,选择jdk-8u202-windows-x64(JDK是java软件开发包(Java Development Kit)的简称,要想开发java程序就必须安装JDK。没有JDK的话,无法编译运行Java程序。) Index of java-local/jdk/8u202-b08 (…

【Python】Matplotlib画图(四)——折线图

环境 Python Mac OS 代码 # coding:utf-8""" Author: roguesir Date: 2017/8/30 GitHub: https://roguesir.github.com Blog: http://blog.csdn.net/roguesir """import numpy as np import matplotlib.pyplot as plt x1[20,33,51,79,101,1…

Python绘制简单的折线图,附详细代码和注释

本文利用Python绘制简单的折线图,需使用Matplotlib安装包,该安装包的安装可参考: Python中安装Matplotlib数学绘图库_Xx_Studying的博客-CSDN博客 绘制简单的折线图详细的python代码: import matplotlib.pyplot as plt # 导入…

python绘制双折线图

#每天进步一点点 昨天写了一个绘制折线图的代码: import numpy as np import matplotlib.pyplot as plt from pylab import * #导入数据 data {loss: [0.2183203399181366, 0.18074245750904083, 0.17447859048843384, 0.16980455815792084, 0.16634176671504974,…

python用matplotlib画折线图

折线图: import matplotlib.pyplot as plt y1[10,13,5,40,30,60,70,12,55,25] x1range(0,10) x2range(0,10) y2[5,8,0,30,20,40,50,10,40,15] plt.plot(x1,y1,labelFrist line,linewidth3,colorr,markero, markerfacecolorblue,markersize12) plt.plot(x2,y…

python画折线图

最近要画论文中的图,参考了一下之前的论文里面的图,觉得人家画的不错(见下图),想画一下,但是一直也没找到合适的画法,最近潜心研究,终于解决了这个问题,写一下&#xff0…

Python绘制折线图、散点图

Python绘图需要下载安装matplotlib模块,它是一个数学绘图库,我们将使用它来制作简单的图表,如折线图和散点图。关于matplotlib模块的下载安装预配置将在后面具体介绍。 (一)绘制折线图 首先,我们先绘制一…

【python画图】使用python画折线图、柱状图

目录 一、读取数据 (1)文件中读取数据 (2)代码中直接读取 二、画图 折线图 要想指定横纵轴的刻度范围或指定相应取值:(或者X轴不规则增长) 柱状图 其实现在有很多在线网站就可以直接导入数据画图,不…