本文详细介绍在 Rocky Linux 9.5 上独立部署 SVN 服务端,并在 Windows 上使用 TortoiseSVN 客户端进行版本控制的完整流程,包括 仓库创建、权限管理、文件同步、账号密码管理。
一、服务端安装与仓库初始化
1. 安装 SVN
sudo dnf install subversion -y
验证安装:
svn --version
2. 创建仓库目录
sudo mkdir -p /var/svn
sudo chown -R svnuser:svnuser /var/svn
sudo chmod -R 770 /var/svn
svnuser是你用来运行 SVN 服务的系统用户,可以用adduser svnuser创建。
3. 初始化仓库
svnadmin create /var/svn/project1
目录结构:
/var/svn/project1
├── conf
│ ├── authz
│ ├── passwd
│ └── svnserve.conf
├── db
├── hooks
├── locks
├── format
└── README.txt
配置文件均在 conf 目录下。
4. 配置 svnserve
编辑 /var/svn/project1/conf/svnserve.conf:
[general]
anon-access = none # 禁止匿名访问
auth-access = write # 允许授权用户写操作
password-db = passwd # 指定密码文件
authz-db = authz # 指定权限文件
realm = Project1 SVN
取消注释相关行即可。
5. 配置账号与权限
创建账号
编辑 /var/svn/project1/conf/passwd:
[users]
admin = 123456
dev1 = 123456
dev2 = 123456
配置权限
编辑 /var/svn/project1/conf/authz:
[groups]
admins = admin
devs = dev1,dev2
[/]
@admins = rw
@devs = r
rw:读写权限r:只读权限- 空白表示禁止访问
6. 启动 SVN 服务
后台运行并指定仓库根目录:
svnserve -d -r /var/svn
验证服务是否启动:
ss -lntp | grep 3690
默认监听端口
3690。
7. systemd 管理方式(推荐)
创建 /etc/systemd/system/svnserve.service:
[Unit]
Description=Subversion Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /var/svn
ExecStop=/usr/bin/pkill svnserve
Restart=always
[Install]
WantedBy=multi-user.target
加载并启动服务:
systemctl daemon-reload
systemctl enable svnserve
systemctl start svnserve
systemctl status svnserve
开放防火墙端口:
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload
8. 密码重置
直接编辑 /var/svn/project1/conf/passwd:
admin = NewPassword2026
无需重启服务,下一次客户端连接即可生效。
二、Windows 客户端 TortoiseSVN 配置与使用
1. 下载与安装
访问 TortoiseSVN 官网,下载并安装 Windows 客户端。
2. 检出(Checkout)仓库
-
在 Windows 上新建文件夹(如
D:\Projects\project1)。 -
右键文件夹 →
SVN Checkout。 -
填写仓库 URL:
svn://服务器IP/project1
-
输入用户名和密码,点击 OK。
3. 文件同步操作
- 提交文件(Commit)
右键文件 →SVN Commit→ 输入提交说明 → 提交。 - 更新文件(Update)
右键文件夹 →SVN Update→ 获取最新版本。 - 查看历史日志(Show Log)
右键文件夹 →TortoiseSVN→Show log。
4. 文件夹共享管理
可以在服务器 /var/svn 下创建共享目录:
mkdir /var/svn/shared
svn import /var/svn/shared svn://服务器IP/project1/shared -m "导入共享目录"
客户端即可访问共享资源。
三、服务端常用命令总结
| 操作 | 命令 |
|---|---|
| 启动服务 | systemctl start svnserve |
| 停止服务 | systemctl stop svnserve |
| 重启服务 | systemctl restart svnserve |
| 查看状态 | systemctl status svnserve |
| 设置开机自启 | systemctl enable svnserve |
| 关闭开机自启 | systemctl disable svnserve |
