• Linux(CentOS)搭建SVN服务器


    1.安装命令

    yum -y install subversion

    查看SVN安装位置

    rpm -ql subversion

    查看SVN版本

    svnserve --version

    2.创建版本库根目录(此仅为目录,为后面创建版本库提供存放位置)

    mkdir /home/svn

    3.创建SVN版本库(创建项目)

    svnadmin create /home/svn/project1
    svnadmin create /home/svn/project2

    创建成功后,进入project1目录下

    cd /home/svn/project1

    进入目录,可以看见如下文件信息:

    创建版本库公共配置文件存放目录,随便打开一个项目版本库复制一份conf目录(即:/home/svn/project1/conf)到 /home/svn 目录下

    cp -r /home/svn/project1/conf /home/svn/conf

    清空刚才创建的项目版本库conf目录,删除库的所有配置文件

    rm -f /home/svn/project1/conf/*
    rm -f /home/svn/project2/conf/*

    4.修改配置

    进入conf目录

    cd /home/svn/conf

    conf目录下,一共存放三份重要的配置文件,如下:

    authz:负责账号权限的管理,控制账号是否读写权限
    
    passwd:负责账号和密码的用户名单管理
    
    svnserve.conf:svn服务器配置文件

    编辑 authz 文件

    @group1 = rw 中的"rw"意思是[groups]下定义的用户对指定的版本库有读写权限 

    编辑 passwd 文件

    编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)

    #配置匿名用户不可读(none匿名用户不可读写)
    anon-access = none
    #授权用户可写 auth
    -access = write #使用哪个文件作为账号文件
    password
    -db = ../../conf/passwd #使用哪个文件作为权限文件
    authz
    -db = ../../conf/authz #认证空间名,版本库所在目录,该文件只为了后面方便复制到每个项目下的conf目录下,每个项目下的svnserv.conf中需要指明当前项目的目录
    realm
    = /home/svn(后面单个项目中的svnserve.conf就需要设置如:realm = /home/svn/project1)

    复制 svnserve.conf 配置文件到刚创建的所有项目版本库的conf目录下

    cp -f /home/svn/conf/svnserve.conf /home/svn/project1/conf/svnserve.conf
    cp -f /home/svn/conf/svnserve.conf /home/svn/project2/conf/svnserve.conf

    修改/home/svn/project1/conf/svnserve.conf

    realm = /home/svn/project1

    修改/home/svn/project2/conf/svnserve.conf

    realm = /home/svn/project2

    注意:当SVN服务启动时/home/svn/conf下的svnserve.conf文件并不会被版本库载入,而真正被载入的配置是相对每个project/conf里的svnserve.conf文件,所以只是备份在当前目录下为了以后添加项目时方便复制到新的project/conf里,但是所有项目版本库conf目录下的svnserve.conf文件中“realm”都是不一样的!当然每个project/conf里的svnserve.conf文件都复制好并设置好“realm”后,/home/svn/conf下的svnserve.conf文件也可以被删掉。

    5.自行配置好防火墙(默认3690端口)

    云服务器配置好安全组

    CentOS7放开端口

    firewall-cmd --permanent --add-port=3690/tcp
    
    firewall-cmd --reload

    6.启动SVN服务器(注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径)

    svnserve -d -r /home/svn

    也可再设置别的端口(默认端口3690)

    svnserve --listen-port 3691 -d -r /home/svn

    查看端口是否开启

    netstat -ntlp

    查看进程号

    ps -A | grep svn

    关闭进程号

    kill 进程号

    查看SVN启动结果

    ps -ef | grep svnserve

    7.访问SVN服务器

    Windows系统

    svn://ip地址/project1

    Linux系统

    svn co svn://ip地址/project1

    其他命令

    //查看目录列表
    svn list --username 账号 [版本库目录]
    
    //查看文件详细信息
    svn info --username 账号 [版本库目录]
    
    //查看日志
    svn log --username 账号 [版本库目录]
    
    //检出版本库
    svn checkout --username 账号 svn://ip地址/[目录] [目标目录]
    
    //更新版本库
    svn update [版本库目录]

    8.配置使用systemctl管理SVN(CentOS7)

    创建/etc/systemd/system/svn.service文件

    vi /etc/systemd/system/svn.service

    并写入内容

    [Unit]
    Description=Subversion Server
    [Service]
    Type=forking
    ExecStart=/usr/bin/svnserve --daemon --root /home/svn
    ExecStop=/usr/bin/killall svnserve
    Restart=always
    [Install]
    WantedBy=default.target
    

    其中,“/home/svn”是SVN仓库的根路径,请根据情况修改。

    通知systemd有个新服务添加

    systemctl daemon-reload
    

    启动和停止SVN服务

    systemctl start svn.service
    systemctl stop svn.service
    

    配置开机自动启动

    systemctl enable svn.service
    

    检查SVN服务运作状态

    systemctl status svn.service
    

    查看是否开机启动

    systemctl is-enabled svn.service
    
  • 相关阅读:
    数学符号表
    对比深度学习十大框架:TensorFlow最流行但并不是最好
    支持向量机通俗导论(理解SVM的三层境界)
    Annotation
    Struts2的拦截器
    DLL文件的引用
    JS引擎
    Windows窗口的创建
    解决构造器多参数的设计问题
    静态工厂对比构造器之优缺点
  • 原文地址:https://www.cnblogs.com/pengyunjing/p/10394282.html
Copyright © 2020-2023  润新知