Subversion(简称SVN)是一个开源的版本控制系统,管理随时间改变的数据,SVN服务支持svnserve和http访问模式。程序员
SVN管理的数据存放在中央资料档案库(Repository)中。该档案库会记录文件的每一次变更,这样您就能够把数据恢复至旧版本或浏览文件的变更历史。SVN中经常使用的概念和操做以下:安全
一、运行命令安装SVN,查看SVN版本:tcp
yum install subversion svnserve --version
一、运行如下命令建立版本库根目录。svn
mkdir /var/svn
二、依次运行如下命令建立版本库,查看自动生成的版本库文件ui
cd /var/svn svnadmin create /var/svn/svnrepos cd svnrepos ls
一、设置帐号和密码:阿里云
运行命令:cd conf/ 编辑文件:vi passwd
移动光标至[users]块中,添加用户帐号和密码。url
注:添加帐号和密码的格式为:帐号 = 密码。例如,admin(帐号) = 123456(密码),以下图所示(注意等号两端要有一个空格)。spa
按Esc键退出编辑模式,并输入:wq保存并退出。3d
二、为帐号设置读写权限:版本控制
运行vi authz
命令,打开权限控制文件。
按i
键进入编辑模式。
移动光标至文件末尾,并添加以下代码(admin表示帐号,r表示读权限,w表示写权限):
[/]
admin=rw
按Esc
键退出编辑模式,并输入:wq
保存并退出。
三、修改SVN服务配置:
运行vi svnserve.conf
打开SVN服务配置文件。
按i
键进入编辑模式。
移动光标找到以下配置行,删除行前面的注释符#和空格:
anon-access = read #匿名用户可读,您也能够设置 anon-access = none,不容许匿名用户访问。设置为 none,可使日志日期正常显示 auth-access = write #受权用户可写 password-db = passwd #使用哪一个文件做为帐号文件 authz-db = authz #使用哪一个文件做为权限文件 realm = /var/svn/svnrepos #认证空间名,版本库所在目录
注:每行不能以空格开始,且等号两端要有一个空格。
按Esc
键退出编辑模式,并输入:wq
保存并退出。
四、启动SVN版本库:
运行命令:svnserve -d -r /var/svn/ # 启动svn 运行命令:ps -ef |grep svn # 查看SVN服务是否开启
若是返回结果以下图所示,表示SVN服务已经开启。
killall svnserve
命令可中止SVN服务。
五、防火墙设置
开放防火墙端口,执行命令vi /etc/sysconfig/iptables,添加如下内容:
-A INPUT -p tcp -m state --state NEW -m tcp --Dport 3690 -j ACCEPT
保存并退出,执行service iptables restart重启防火墙。
注:重启防火墙失败:
解决办法:可尝试关闭firewalld服务在重启iptables
service iptables save systemctl stop firewalld -- 关闭firewalld服务 systemctl disable firewalld --设置开机禁用firewalld systemctl start iptables -- 启动iptables systemctl status iptables --确认iptables状态 systemctl enable iptables -- 设置iptables开机启动 systemctl status firewalld --确认firewalld服务
六、阿里云添加安全组规则
SVN服务的默认端口为TCP 3690。您须要登陆阿里云ECS管理控制台,添加安全组规则放行TCP 3690端口。
一、在本机下载并安装TortoiseSVN客户端
二、右键单击本地项目文件夹,在弹出菜单中,选择SVN检出,填写以下信息后,单击肯定。
指定资源库URL,格式为svn://实例公网IP地址/SVN仓库名
。本示例中,SVN仓库名为svnrepos。
若是出现下图所示信息,表示检出成功。
# Generated by iptables-save v1.4.21 on Tue Jul 2 17:03:06 2019 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [5:5594] -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 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --Dport 3690 -j ACCEP -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Tue Jul 2 17:03:06 2019