zoukankan      html  css  js  c++  java
  • 搭建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 /仓库地址(安装的路径)
  • 相关阅读:
    JS提取子字符串函数比较
    js事件定义方式和获取事件对象event总结
    让body的clientHeight与html的clientHeight相等的方法
    关于原型链和继承问题的思考:为什么不能直接把父类的prototype赋值给子类的prototype
    [javascript权威指南笔记02]Throw语句和异常处理机制try/catch/finally
    转载:javascript语句标签
    转:JS中强大的正则表达式
    分享我常用的Javascript工具函数
    对prototype,instanceof和constrctor的理解
    xml基础知识总结和回顾
  • 原文地址:https://www.cnblogs.com/yitao326/p/11127734.html
Copyright © 2011-2022 走看看