sudo apt update
sudo apt install subversion libapache2-mod-svn
sudo yum install subversion mod_dav_svn
# 或者对于较新的CentOS/RHEL 8+
sudo dnf install subversion mod_dav_svn
sudo mkdir -p /var/svn
sudo svnadmin create /var/svn/myproject
sudo chown -R www-data:www-data /var/svn/myproject # Debian/Ubuntu
# 或者对于CentOS/RHEL:
sudo chown -R apache:apache /var/svn/myproject
编辑Apache配置文件:
sudo nano /etc/apache2/mods-enabled/dav_svn.conf
sudo nano /etc/httpd/conf.d/subversion.conf
添加以下内容(根据实际情况修改):
<Location /svn/myproject>
DAV svn
SVNPath /var/svn/myproject
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
sudo htpasswd -cm /etc/apache2/dav_svn.passwd username1
# 添加第二个用户时去掉-c参数
sudo htpasswd -m /etc/apache2/dav_svn.passwd username2
sudo systemctl restart apache2
sudo systemctl restart httpd
编辑仓库的conf/svnserve.conf
文件:
sudo nano /var/svn/myproject/conf/svnserve.conf
修改以下内容(去掉前面的#并修改值):
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
编辑用户密码文件:
sudo nano /var/svn/myproject/conf/passwd
添加类似内容:
[users]
user1 = password1
user2 = password2
编辑权限控制文件:
sudo nano /var/svn/myproject/conf/authz
示例内容:
[groups]
admin = user1
dev = user2
[/]
@admin = rw
@dev = r
* =
svn checkout http://your-server-ip/svn/myproject
如果需要独立svnserve服务:
sudo svnserve -d -r /var/svn
然后可以使用:
svn checkout svn://your-server-ip/myproject
sudo ufw allow 80/tcp # Debian/Ubuntu
# 或者
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload # CentOS/RHEL
sudo ufw allow 3690/tcp # Debian/Ubuntu
# 或者
sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload # CentOS/RHEL
sudo systemctl enable svnserve
svn checkout URL [PATH]
svn add FILE
svn commit -m "message"
svn update
svn status
svn log
/var/svn/myproject
目录)如需更高级的配置,如LDAP集成、更细粒度的权限控制等,可以参考SVN官方文档进行配置。