当前位置: 代码迷 >> 综合 >> 【Linux】Linux 搭建 SVN(Subversion) 项目统一管理服务器
  详细解决方案

【Linux】Linux 搭建 SVN(Subversion) 项目统一管理服务器

热度:96   发布时间:2023-12-26 18:43:44.0

文章目录

  • 1、Linux 搭建 SVN 服务器
      • (1)Apache Subversion
      • (2)检查老版本
      • (3)安装过程详解
      • (4)防火墙设置
  • 微信公众号

1、Linux 搭建 SVN 服务器

通常情况下,公司内部都会搭建一个svn服务器,用来统一管理公司的项目,也有一些开发公司使用的是码云之类的代码托管平台,这里我们就搭建一个svn服务器来管理我们自己的项目,面向实战学习

(1)Apache Subversion

  • Apache Subversion

面向大众的企业级集中版本控制

在这里插入图片描述

(2)检查老版本

检查Linux是否已经安装过svn

rpm -qa subversion

如果有则卸载

yum -y  remove subversion

(3)安装过程详解

首先安装SVNServer

yum -y install subversion

安装完成之后,再次查看版本,是否正确安装

rpm -ql subversion

创建版本库目录

mkdir -p /var/svn/svnrepos

创建svn版本库,我这里使用的是test作为根目录,实际使用的时候可以改为projects

svnadmin create /var/svn/testcd /var/svn/test
  • conf:是这个仓库配置文件(仓库用户访问账户,权限)
  • format:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号
  • hooks:放置hook脚步文件的目录
  • locks:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

进入配置文件夹中,有三个文件

cd conf
  • authz:负责账号权限的管理,控制账号是否读写权限
  • passwd:负责账号和密码的用户名单管理
  • svnserve.conf:svn服务器配置文件

编辑服务器配置文件

vim svnserve.conf

配置都被注释了,放开以下配置,realm 是自己之前创建的版本库名称

[general]
anon-access = none        #控制非鉴权用户访问版本库的权限
auth-access = write       #控制鉴权用户访问版本库的权限
password-db = passwd      #指定用户名口令文件名,即访问时要输用户名和密码
realm = test              #指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库

修改账号管理,给每个账户设置对应的权限

r:读权限
w:写权限
rw:读写权限
null:没有权限

vim authz
  • 方式一:按账号分权限(不推荐)

这里的例子是给 user1 读写权限,user2 读权限

[test/]
admin = rw # admin用户有读写权限
test = r   # test用户只有读权限
  • 方式二:先分组用户,再设置权限
[groups]
# 按用户组分权限
admin = admin,admin1
test = test1, test2
[/]         # 表示svn仓库目录(/var/svn/test),test: 对应前面配置的realm = test
@admin = rw # 表示admin组对仓库(/var/svn/test)目录有读写权限,r为读,w为写
@test = r   # 表示test组的用户对对仓库(/var/svn/test)目录只有读的权限
[/test1]    # 表示test1目录(/var/svn/test/test1)
@test = rw  # 表示test组对test1目录有读写权限
* =

这里我们使用方式二学习,将内容粘贴到authz配置文件中

修改passwd文件信息

vim passwd

配置账号密码,粘贴以下内容

[users]
admin = 123456
admin1 = 123456
test = 123456
test1 = 123456

更改svnserver.conf时需要重启SVN服务才生效,更改authz,passwd文件时则不需要重启服务

启动svn服务器

# -d : 守护进程 -r : svn数据根目录
svnserve -dr /var/svn

查看服务,默认端口:3690

ps aux|grep svnserve

设置开机启动,我是centos7,根目录必须是/var/svn 这样才能设置成功

systemctl enable svnserve.service

启动停止命令就可以使用以下方式

systemctl start svnserve.service systemctl stop svnserve.service

拉取项目到本地,在本地安装 SVN 客户端,然后右键,选择 SVN Checkout,服务器IP换成你自己的

svn://106.52.96.138:3690/test

在这里插入图片描述
在拉取的文件夹下新建一个文件,然后再项目文件夹上右键,选择SVN commit

在这里插入图片描述
点击OK后,需要输入账号密码,这里我们使用admin/123456,之前设置了读取权限的,一路OK即可

在这里插入图片描述

(4)防火墙设置

我是防火墙没开,但是实际使用的时候会有防火墙问题,这里记录一下解决方法

# 查看状态
firewall-cmd --permanent --add-service=telnet
# 开端口
firewall-cmd --permanent --add-port=3690/tcp
# 重新加载
firewall-cmd --reload

防火墙相关命令

systemctl start firewalldsystemctl stop firewalldsystemctl status firewalld

微信公众号