搭建Linux环境--安装svn

Subversion(简称SVN)是一个开源的版本控制系统,管理随时间改变的数据,SVN服务支持svnserve和http访问模式。

SVN简介

SVN管理的数据存放在中央资料档案库(Repository)中。该档案库会记录文件的每一次变动,这样您就可以把数据恢复至旧版本或浏览文件的变动历史。SVN中常用的概念和操作如下:

  • Repository(源代码库):源代码统一存放的地方。
  • Checkout(提取):该操作用于从Repository中提取一份源代码到本地。
  • Commit(提交):该操作用于将修改代码后的代码提交到Repository。
  • Update(更新):该操作用于同步本地源代码与Repository中的源代码。
使用SVN管理代码的常见流程为:
  1. Checkout(您提取源代码到本地)
  2. 其他人修改并提交源代码到Repository
  3. Update(您获得最新的代码)
  4. 您修改并调试成功源代码。
  5. Commit(提交修改后的代码到Repository,其他程序员即可看到您的修改)。
SVN管理源代码的单位为行。如果您与其他程序员同时修改了一个文件中的代码:
  • 若修改的代码在不同行,SVN会自动合并两种修改。
  • 若修改的代码在同一行,SVN会提示文件冲突(Conflict),需要手动确认。

安装部署

一:安装SVN

1、运行命令安装SVN,查看SVN版本:

yum install subversion

svnserve --version

二:创建SVN版本库

1、运行以下命令创建版本库根目录。

mkdir /var/svn

2、依次运行以下命令创建版本库,查看自动生成的版本库文件

cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos
ls

注:Subversion目录说明

三、配置SVN

1、设置账号和密码:

运行命令:cd conf/
编辑文件:vi passwd

移动光标至[users]块中,添加用户账号和密码。

注:添加账号和密码的格式为:账号 = 密码。例如,admin(账号) = 123456(密码),如下图所示(注意等号两端要有一个空格)。

按Esc键退出编辑模式,并输入:wq保存并退出。

2、为账号设置读写权限:

运行vi authz命令,打开权限控制文件。

i键进入编辑模式。

移动光标至文件末尾,并添加如下代码(admin表示账号,r表示读权限,w表示写权限):

[/]
admin=rw

Esc键退出编辑模式,并输入:wq保存并退出。

3、修改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保存并退出。

4、启动SVN版本库: 

运行命令:svnserve -d -r /var/svn/     # 启动svn
运行命令:ps -ef |grep svn         # 查看SVN服务是否开启

如果返回结果如下图所示,表示SVN服务已经开启。

注:运行killall svnserve命令可停止SVN服务。

5、防火墙设置

 开放防火墙端口,执行命令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服务

6、阿里云添加安全组规则

SVN服务的默认端口为TCP 3690。您需要登录阿里云ECS管理控制台,添加安全组规则放行TCP 3690端口。

四:svn客户端连接

1、在本机下载并安装TortoiseSVN客户端

2、右键单击本地项目文件夹,在弹出菜单中,选择SVN检出,填写如下信息后,单击确定。

指定资源库URL,格式为svn://实例公网IP地址/SVN仓库名。本示例中,SVN仓库名为svnrepos。


如果出现下图所示信息,表示检出成功。


注:
1、第一次登录需输入账号和密码,即您在passwd文件中设置的账户和密码。
# 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

 2、如果本地连接失败,报错“No repository found in 'svn://47.1XX.XXX.XX”

执行命令:
svnserve -d -r /var/svn/svnrepos

如果提示错误:
则执行:
killall svnserve                         # 杀死所有svn进程
sudo svnserve -d -r /var/svn/svnrepos            # 获取权限执行svnserve -d -r /仓库地址(安装的路径)
原文地址:https://www.cnblogs.com/yitao326/p/11127734.html