"老张,咱们项目组的代码现在到处乱放,每个人电脑上版本都不一样,昨天小王的修改把小李的代码覆盖了,现在整个项目都跑不起来!"——如果你也遇到过这种开发团队的版本管理混乱问题,是时候搭建一个SVN服务器了,今天我就以CentOS 6.3系统为例,带你一步步完成SVN服务器的安装与配置,让你的团队告别代码管理噩梦。
在开始之前,我们需要确保几件事:
打开终端,我们先来安装SVN服务端和相关组件:
# 更新系统软件包 yum update -y # 安装SVN服务端和Apache模块(如果你想通过HTTP访问的话) yum install -y subversion mod_dav_svn
安装完成后,我们可以检查一下版本确认安装成功:
svnserve --version
如果看到类似"svnserve, version 1.6.11"这样的输出,说明安装成功了。
现在我们来创建一个SVN仓库,假设我们要为"myproject"项目创建仓库:
# 创建SVN根目录(你可以根据实际情况选择其他位置) mkdir -p /var/svn # 创建项目仓库 svnadmin create /var/svn/myproject
创建完成后,进入仓库的conf目录,这里有几个重要文件需要配置:
cd /var/svn/myproject/conf
你会看到三个关键文件:
编辑passwd文件:
vi passwd
在[users]部分添加用户,格式是"用户名=密码",
[users]
zhangsan = 123456
lisi = abcdef
wangwu = 654321
编辑authz文件:
vi authz
设置用户组和权限,
[groups]
developers = zhangsan,lisi
manager = wangwu
[/]
@manager = rw
@developers = rw
* = r
这样配置后,manager组的成员有读写权限,developers组的成员也有读写权限,其他用户只有读权限。
编辑svnserve.conf文件:
vi svnserve.conf
找到并修改以下配置(注意去掉前面的#号):
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My Project Repository
配置完成后,我们可以启动SVN服务了:
svnserve -d -r /var/svn
如果想开机自动启动,可以把它加入rc.local:
echo "svnserve -d -r /var/svn" >> /etc/rc.local chmod +x /etc/rc.local
如果你的CentOS开启了防火墙,需要开放SVN默认的3690端口:
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT service iptables save service iptables restart
现在可以在客户端测试连接了,在Windows上可以使用TortoiseSVN,Linux/Mac可以使用命令行:
svn checkout svn://你的服务器IP/myproject
系统会提示输入用户名密码,使用我们之前设置的用户登录即可。
如果你想通过HTTP访问SVN,可以继续以下配置:
首先确保Apache已安装并运行:
yum install -y httpd service httpd start chkconfig httpd on
创建HTTP访问的仓库目录:
mkdir -p /var/www/svn svnadmin create /var/www/svn/myproject chown -R apache:apache /var/www/svn/myproject
配置Apache:
编辑Apache的SVN配置文件:
vi /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/www/svn/passwd
Require valid-user
</Location>
创建HTTP访问的用户密码:
htpasswd -cm /var/www/svn/passwd zhangsan htpasswd -m /var/www/svn/passwd lisi
重启Apache服务:
service httpd restart
现在可以通过http://你的服务器IP/svn/myproject 访问SVN仓库了。
权限问题:如果遇到权限错误,确保仓库目录的权限正确:
chown -R apache:apache /var/www/svn/myproject
连接被拒绝:检查防火墙是否开放了3690端口(SVN)或80端口(HTTP)
认证失败:确认passwd文件中的用户名密码正确,且svnserve.conf配置正确
仓库锁定:如果仓库被锁定,可以尝试:
svn cleanup
定期备份你的SVN仓库:
svnadmin dump /var/svn/myproject > /backup/myproject_backup.dump
考虑设置自动备份脚本
对于重要项目,可以考虑设置SVN的钩子脚本,在提交时自动执行某些操作
通过以上步骤,你应该已经在CentOS 6.3上成功搭建了SVN服务器,现在你的团队可以开始使用这个中央代码仓库进行协作开发了,虽然现在Git很流行,但SVN依然在很多传统企业中使用,特别是对于那些不需要分布式版本控制的场景。
良好的版本控制习惯比工具本身更重要,建议制定团队的代码提交规范,比如提交时必须填写有意义的日志信息,定期打标签等,这样才能真正发挥版本控制的作用。
本文由 箕飞航 于2025-08-02发表在【云服务器提供商】,文中图片由(箕飞航)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/519708.html
发表评论