zoukankan      html  css  js  c++  java
  • centos7 搭建svn服务器

    1、安装svn服务器:

    yum install subversion

    2、配置svn服务器:

    建立svn版本库根目录及相关目录即svndata及密码权限命令svnpasswd;

     mkdir -p /application/{svndata,svnpasswd}
    
            svndata目录:作为存放svn的根目录;
            svnpasswd目录:作为存放登录svn的用户和密码;

    3、启动svn服务:

    svnserve -d -r /application/svndata/
            参数:
                -d:表示后台运行守护模式;
                -r:表示svn服务的根目录;
    
                检测svn端口3690是否已经监听:
        netstat -lntup | grep 3690

    4、建立版本库:
    在/application/svndata/目录下,创建项目sadoc:

    svnadmin create /application/svndata/sadoc

    会自动创建出一系列固定的目录:

    tree /application/svndata/sadoc

    /application/svndata/sadoc
    ├── conf
    │   ├── authz
    │   ├── passwd
    │   └── svnserve.conf
    ├── db
    │   ├── current
    │   ├── format
    │   ├── fsfs.conf
    │   ├── fs-type
    │   ├── min-unpacked-rev
    │   ├── revprops
    │   │   └── 0
    │   │   └── 0
    │   ├── revs
    │   │   └── 0
    │   │   └── 0
    │   ├── transactions
    │   ├── txn-current
    │   ├── txn-current-lock
    │   ├── txn-protorevs
    │   ├── uuid
    │   └── write-lock
    ├── format
    ├── hooks
    │   ├── post-commit.tmpl
    │   ├── post-lock.tmpl
    │   ├── post-revprop-change.tmpl
    │   ├── post-unlock.tmpl
    │   ├── pre-commit.tmpl
    │   ├── pre-lock.tmpl
    │   ├── pre-revprop-change.tmpl
    │   ├── pre-unlock.tmpl
    │   └── start-commit.tmpl
    ├── locks
    │   ├── db.lock
    │   └── db-logs.lock
    └── README.txt

    主要目录说明:
               conf目录:主要是配置文件、登录用户、密码认证;
                hooks目录:主要是svn的钩子脚本模板,使用时去掉.tmpl后缀即可,钩子脚本实际上就是代码提交前后,可以分别执行的脚本,脚本可用perl、shell、python等语言编写,该目录里面脚本文件名代表提交代码执行的不同时机,如提交代码前执行的脚本pre-commit,提交代码后执行的脚本post-commit,更多详情自行学习;

    5、修改配置文件:

    vim /application/svndata/sadoc/conf/svnserve.conf
    anon-access = none 
            #不允许匿名访问,read为允许匿名访问;
    
     auth-access = write 
        #允许可写;
    
    password-db = /application/svnpasswd/passwd
        #密码数据库
    
    authz-db = /application/svnpasswd/authz 
        #控制权限数据库

    注意:配置文件必须顶格写;

    把用户和密码文件放到自定义的目录中:

    cp authz passwd /application/svnpasswd/

    改权限:

    chmod 700 /application/svnpasswd/*

    配置passwd文件:

    [users]
    oldboy = oldboysecret
    test = testsecret
    test1 = test1secret

    passwd配置文件说明:
    格式为:svn账号=svn密码
    账号和密码可随意指定;

    配置authz:

    [groups] 
    #定义组信息,注意:用户账号在passwd里; 
    ett_sa = oldboy,test1
    ett_wangguan = test
    [sadoc:/]
    @ett_sa = rw
    @ett_wangguan = r
    test = r

    authz配置文件说明:
    1.权限配置文件中出现的用户必须已经在用户配置文件中定义;
    2.对权限配置文件的修改立即生效,不必重启svn;
    3.一个用户组可包含多个用户,用户间用逗号分隔;
    4.版本库目录格式: 
    [<版本库>://项目目录] 
    @<用户组名> = <权限>
    <用户名> = <权限>

    其中,方括号内部分可有多种写法:
        [/]:表示根目录及以下,根目录是svnserve启动时指定的,[/]表示对全部版本库设置权限;
    
        [repos:/]:表示对版本库repos设置权限;
    
        [repos:/sadoc]:表示对版本库repos中的sadoc项目设置权限;
    
        [repos:/sadoc/oldboy]:表示对版本库repos中的sadoc项目的oldboy目录设置权限;
    
        权限主体可以是用户、用户组或*,用户组在前面加@,*表示全部用户;
    
        权限可以是w、r、wr和空,空表示没有任何权限;
        authz中每个参数都要顶格写,开头不能有空格;
        对于组,要以@开头,而用户不需要;

    6、重启svn服务:

     ]# pkill svnserve
     ]# svnserve -d -r /application/svndata/
    
        注意:
        更改svnserve.conf需要重启svn,更改authz、passwd文件时不需要重启;
    
        检查3690端口是否处于监听状态,至此svn服务器搭建完成;下面是svn客户端的安装与使用;

    分别说明在windows平台和centos7平台上的svn客户端安装和使用:

    svn客户端访问方式:

    subversion可通过多种方式访问--本地磁盘服务,或各种各样不同的网络协议,但一个版本库地址永远都是一个url,url方案反映了访问方法;

    1.file:// 直接版本库服务(本地磁盘或访问方法;
           2. http:// 通过webdav协议服务支持subversion的apache服务器;
           3.https:// 与http://相似,但是用ssl加密;
           4.svn:// 通过未认证的tcp/ip自定义协议访问svnserve服务器;
           5. svn+ssh:// 通过认证并加密的tcp/ip自定义协议访问svnserve服务器;

    1、windows平台:
    下载svn客户端安装即可,都是鼠标操作,比较容易;
    主要说明后续的使用步骤:
    1.在本地创建svn目录:如创建svn-test目录;

    2.在该目录上右击,选择SVN Checkout:
    然后,根据弹框,填写svn服务器地址、用户名等信息;首次使用svn用checkout,会要求输入用户名和密码;
    保存认证信息在缺省目录:%APPDATA%Subversionauth目录下,在运行cmd窗口输入:
    
    %APPDATA%Subversionauth即可,
    即C:UserssshssAppDataRoamingSubversionauth

    centos7 搭建svn服务器

    该目录上右击: centos7 搭建svn服务器
    继续操作:
    centos7 搭建svn服务器
    点击ok
    centos7 搭建svn服务器
    这样即可完成
    3.在创建的目录里,编写代码,然后在该目录右击,选择SVN Commit提交代码即可
    4.如果要拉取,svn服务器上的代码,右击该目录,选择SVN Update即可;
    centos7 搭建svn服务器
    具体功能,自行学习下,点击鼠标就行了;

    2、centos7平台:
    主要步骤即svn命令说明:
    1.导入svn原始目录:

    先创建svn目录: 
            ]# mkdir /data/oldboy -p
    
         在其目录下,创建3个目录:
         ]# cd /data/oldboy; mkdir trunk branch tags -p
        导入:
        ]# svn import /data/oldboy svn://192.168.255.12/sadoc/ -m "import tree"

    2.从svn库提取数据:

    ]# mkdir /data/test
    ]# svn checkout svn://192.168.255.12/sadoc /data/test --username oldboy --password oldboysecret
    或简写:
     ]# svn co svn://192.168.255.12/sadoc /data/test --username=oldboy --password=oldboysecret
     或:
     ]# svn co file:///application/svndata/sadoc /data/test --username=oldboy --password=oldboysecret
    
    注意:首次使用svn用checkout;后面再用提取数据不用再使用用户名和密码:

    3.查看svn中的数据:

    ]# svn list --verbose svn://192.168.255.12/sadoc
    或:
     ]# svn ls --verbose svn://192.168.255.12/sadoc  
     ]# svn cat svn://192.168.255.12/sadoc/trunk/test1.txt

    4.向svn中提交数据:

    ]# touch /data/test/trunk/test2.txt
            ]# svn add /data/test/trunk/test2.txt
            ]# svn ci -m "test2.txt"  /data/test/trunk/test2.txt
    
            ci简称:commit;
            co简称:checkout;
    
            注意:提交时,先add,再commit;

    5.svn钩子脚本使用(仅演示一个)

    仅演示post-commit脚本使用:
        ]# vim /application/svndata/sadoc/hooks/post-commit
        注释掉默认执行语句,添加:
        touch /tmp/$(date +%F).log
    
        添加执行权限:
         ]# chmod 755 post-commit
    
        在windows客户端上,修改数据后执行commit,在linux命令行上查看,是否执行了该钩子脚本;
        即在/tmp目录下创建了一个以时间命名的.log文件;
    
        注意:
            1、钩子脚本的权限要允许svn执行,一般设为chmod 755 post-commit;
            2、写钩子脚本时,尽可能定义变量,主要是用过的命令的路径,因为svn考虑安全问题,不会调用系统环境变量;
            3、在svn update之前,一定要先手动checkout一份出来,还有这里一定要加上用户和密码;
  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/whybxy/p/8939897.html
Copyright © 2011-2022 走看看