SVN启动命令详解
SVN服务启动的核心场景
SVN(Subversion)的启动分为服务器端服务启动和客户端命令执行两类:
- 服务器端启动:运行SVN服务进程(如
svnserve
),供客户端连接 - 客户端命令:直接使用
svn
命令管理版本库(无需启动服务)
启动SVN服务器(服务端)
▶ 通过svnserve启动(推荐基础方案)
# 启动服务(独立模式) svnserve -d -r /path/to/repo_parent --listen-port 3690
-d
:后台守护进程-r
:指定版本库父目录(如/svn
下含多个仓库)--listen-port
:自定义端口(默认3690)
▶ Windows系统服务安装
- 安装SVN服务(管理员权限):
sc create SVNService binpath= "\"C:\Program Files\Svn\bin\svnserve.exe\" --service -r D:\svn_repos" start= auto
- 启动服务:
net start SVNService
▶ Linux系统服务(systemd)
创建/etc/systemd/system/svnserve.service
:
[Unit] Description=Subversion Daemon After=network.target [Service] Type=forking ExecStart=/usr/bin/svnserve -d -r /var/svn --pid-file=/run/svnserve.pid [Install] WantedBy=multi-user.target
启动命令:
systemctl start svnserve # 立即启动 systemctl enable svnserve # 开机自启
客户端命令使用(无需启动服务)
客户端直接操作版本库:
# 检出代码 svn checkout svn://服务器IP/仓库名 本地目录 # 提交修改 svn commit -m "更新日志" # 查看状态 svn status
✅ 客户端只需安装SVN命令行工具,无需启动服务进程
通过Apache HTTP启动(高级方案)
配置Apache支持SVN(需mod_dav_svn
):
- 安装模块:
# Ubuntu sudo apt install libapache2-mod-svn
- 编辑
/etc/apache2/mods-available/dav_svn.conf
:<Location /svn> DAV svn SVNParentPath /var/svn AuthType Basic AuthName "SVN Repository" AuthUserFile /etc/svn-auth-users Require valid-user </Location>
- 重启Apache:
sudo systemctl restart apache2
关键注意事项
-
防火墙配置:
- 开放3690端口(svnserve)或80/443端口(HTTP)
sudo ufw allow 3690/tcp
- 开放3690端口(svnserve)或80/443端口(HTTP)
-
权限控制:
- 编辑版本库的
conf/svnserve.conf
设置认证规则 - 使用
conf/passwd
管理用户密码
- 编辑版本库的
-
服务验证:
# 检查进程 ps aux | grep svnserve # 测试连接 telnet 服务器IP 3690
故障排查指南
问题现象 | 解决方案 |
---|---|
连接被拒绝 | 检查防火墙及svnserve 是否运行 |
认证失败 | 核对passwd 文件中的用户名密码 |
客户端提示”URL不存在” | 确认-r 参数指向的目录正确 |
Apache报错500 | 检查仓库目录的Apache用户权限 |
提示:生产环境建议使用
systemd
或Windows服务管理,避免终端关闭导致服务停止。
权威引用说明
- Subversion官方文档:SVN Book – Server Configuration
- Apache模块指南:mod_dav_svn Documentation
- Linux服务管理:systemd.service手册页
本文操作基于Subversion 1.14及主流操作系统环境验证,实际部署请根据版本调整参数,服务器部署建议结合SSL加密提升安全性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9923.html