SVN服务器搭建
1. 搭建步骤
按照此步骤进行搭建:
2. 注意事项
2.1 配置authz和passwd文件
主要是[svnrepos:/]
这一行很重要,权限规则必须写在[路径]
节点下,如[/]
和[repo:/branch]
等。
[svnrepos:/]
# * = r
albert = rw
或者:
[groups]
test_group = urs1,urs2,urs3
[svnrepos:/]
@test_group = rw
实际问题1:搭建svn服务器的Linux服务器下电后,再次上电重启,发现svn服务器连接不上。出问题的为authz
文件。
- 解决方案:authz文件的
[svnrepos:/]
对应启动服务时的/var/svn
;[/]
对应/var/svn/svnrepos
2.2 配置3690端口
在/etc/sysconfig/iptables
中修改对应的3690
端口:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在配置端口时有一个小Tips:
[root@localhost svnrepos]# ss -tuln | grep 3690
tcp LISTEN 0 128 0.0.0.0:3690 0.0.0.0:*
[root@localhost svnrepos]# netstat -tuln | grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
为什么显示这个,还要再在iptables中配3690?
- 因为这两条命令是在说svnserve 服务已经在 0.0.0.0:3690 上成功监听,等待客户端连接。但实际上防火墙依旧阻止了该端口的流量。
2.3 修改文件权限
通过chmod 644 /var/svn/svnrepos/conf/authz
命令修改文件权限,修改完后应显示为下列状态:
-rw-r--r--. 1 root root 1057 Aug 7 17:35 /var/svn/svnrepos/conf/authz
2.4 启动svn服务
svnserve -d -r /var/svn/ --log-file=/var/svn/svn.log # 加日志打印,此时authz文件对应的是[svnrepos:/]
ps aux |grep svnserve
3. 更新仓库
3.1 添加新文件
1、创建一个临时工作副本
svn checkout svn://server_ip/svnrepos /backup_dir
cd /backup_dir
2、在工作副本中创建并添加新文件夹
mkdir test
svn add test/
svn commit -m "Added new folder test"
3、完成后,删除临时工作副本
cd ..
rm -rf /backup_dir
3.1 删除文件
1、创建一个临时工作副本
svn checkout svn://server_ip/svnrepos /backup_dir
cd /backup_dir
2、在工作副本中删除文件夹
svn delete path/to/file/
svn commit -m "Delete folder path/to/file"