zoukankan      html  css  js  c++  java
  • Linux SVN 搭建(YUM)安装

    安装说明

    系统环境:CentOS
    安装方式:yum install (源码安装容易产生版本兼容的问题)
    安装软件:系统自动下载SVN软件

     

    Linux svn服务端配置

    检查已安装版本

    #检查是否安装了低版本的SVN
    [root@localhost /]#rpm -qa subversion

    #如果存储旧版本,卸载旧版本SVN
    [root@localhost modules]#yum remove subversion

    安装SVN

    [root@localhost modules]#yum install subversion 

    验证安装

    检验已经安装的SVN版本信息
    [root@localhost modules]# svnserve --version

    svnserve,版本 1.6.11 (r934486)
    编译于 Jun 23 201200:44:03

    版权所有 (C) 2000-2009 CollabNet
    Subversion 
    是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
    此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

    下列版本库后端(FS) 模块可用:

    * fs_base : 模块只能操作BDB版本库。
    * fs_fs : 
    模块与文本文件(FSFS)版本库一起工作。

    Cyrus SASL 认证可用。

    代码库创建

    SVN软件安装完成后还需要建立SVN
    [root@localhost modules]#mkdir -p /opt/svn/             #
    创建SVN根目录
    [root@localhost modules]#svnadmin create /opt/svn/repo         #
    创建repo测试库
    执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

    配置代码库

    进入上面生成的文件夹conf下,进行配置
    [root@localhost modules]#cd /opt/svn/repo/conf

    用户密码passwd配置

    [root@localhost password]#cd /opt/svn/repo/conf
    [root@admin conf]#vim passwd
    修改passwd为以下内容:

    [users]
    # harry = harryssecret
    # sally = sallyssecret

    hello = 123

    aaa = 123

    www = 123

    用户名=密码

    这样我们就建立了hello用户, 123密码

    以上语句都必须顶格写左侧不能留空格否则会出错.

    权限控制authz配置

    [root@admin conf]#vim authz
    目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

    [groups]            #

    admin = hello,www   #创建一个admin组,将用户加入到组

    [/]                 #根目录权限设置(就是“svn”这个文件夹)

    aaa = rw            #aaasvn下的所有版本库有读写权限

    [repo:/]            #repo:/,表示对repo版本库下的所有资源设置权限

    @admin = rw         #admin组的用户对repo版本库有读写权限

    [repo2:/occi], ,表示对版本库repo2中的occi项目设置权限

    [repo2:/occi/aaa], ,表示对版本库2中的occi项目的aaa目录设置权限  权限主体可以是用户组、用户或*,用户组在前面加@*表示全部用户。权限可以是wrwr和空,空表示没有任何权限。

    以上语句都必须顶格写左侧不能留空格否则会出错.

    服务svnserve.conf配置

    [root@admin conf]#vim svnserve.conf

    追加以下内容:

    [general]
    #
    匿名访问的权限,可以是read,write,none,默认为read
    anon-access = none
    #
    使授权用户有写权限
    auth-access = write
    #
    密码数据库的路径
    password-db = passwd
    #
    访问控制文件
    authz-db = authz
    #
    认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

    realm = /opt/svn/repo

    以上语句都必须顶格写左侧不能留空格否则会出错.

    配置防火墙端口(或直接关闭防护墙)

    [root@localhost conf]#vim /etc/sysconfig/iptables
    添加以下内容:
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
    保存后重启防火墙
    [root@localhost conf]#service iptables restart

    启动SVN

    svnserve -d -r /opt/svn/         #指定SVN根目录

    查看SVN进程

    ps -ef|grep svnserve

    使用import导入文件

    svn import /mnt/ file:///opt/svn/repo/-m "注释"

    增加           /mnt/hgfs

    提交后的版本为 1

    检测SVN 端口

    [root@localhost conf]#netstat -ln |grep 3690
    tcp  0  0 0.0.0.0:3690    0.0.0.0:*     LISTEN

    停止重启SVN

    [root@localhost password]# killall svnserve //停止
    [root@localhost password]# svnserve -d -r /opt/svn/repo // 
    启动

    如果已经有svn在运行,可以换一个端口运行
    svnserve -d -r /opt/svn/ --listen-port 3391

     

    启服务器及测试:

    1,启SVN服务,并指定SVN的根目录:

    [root@youxia201 test]# svnserve -d -r/opt/svn/

    使用checkout导出文件

    在这里特别的要注意,/opt/svn是仓库的根目录,不要和[svntest:/]目录重叠了。如果重叠是会提示错误

    [root@localhost conf]# svn checkoutsvn://127.0.0.1/repo  #本机测试,必需写错127.0.0.1

    认证领域: <svn://127.0.0.1:3690>/opt/svn/repo

    root”的密码直接回车

    认证领域: <svn://127.0.0.1:3690>/opt/svn/repo

    用户名hello

    hello”的密码

     

    -----------------------------------------------------------------------

    注意你的密码,对于认证域:

     

     <svn://127.0.0.1:3690> /opt/svn/repo

     

    只能明文保存在磁盘上如果可能的话,请考虑配置你的系统,让 Subversion

    可以保存加密后的密码。请参阅文档以获得详细信息。

     

    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

    来避免再次出现此警告。

    -----------------------------------------------------------------------

    保存未加密的密码(yes/no)?yes

    取出版本 1

    不让它每次输入都提示yes/on的办法

    编辑vim /root/.subversion/servers   找到下行去掉#号将on改为yes上面绿色部分已提示

    store-plaintext-passwords = no

    ---------------------------------------------------------------------------------------------------------------------

    到此,SVN服务端就配置完成了

     

    Linux svn客户端配置

    检查已安装版本

    #检查是否安装了低版本的SVN
    [root@localhost /]#rpm -qa subversion

    #如果存储旧版本,卸载旧版本SVN
    [root@localhost modules]#yum remove subversion

    安装SVN

    [root@localhost modules]#yum install subversion 

    验证安装

    检验已经安装的SVN版本信息
    [root@localhost modules]# svnserve --version

    svnserve,版本 1.6.11 (r934486)
    编译于 Jun 23 201200:44:03

    版权所有 (C) 2000-2009 CollabNet
    Subversion 
    是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
    此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

    下列版本库后端(FS) 模块可用:

    * fs_base : 模块只能操作BDB版本库。
    * fs_fs : 
    模块与文本文件(FSFS)版本库一起工作。

    Cyrus SASL 认证可用。

    SVN客户端下载文件

    [root@localhost ~]# mkdir /svn

    [root@localhost ~]# cd /svn/        #svn服务上提取的文件放在此目录下

    [root@localhost svn]# svn checkoutsvn://192.168.233.203/repo              #svn服务器地址

    输入用户名密码:hello/123

     

    :可以使用带用户名和密码的访问:

    svn co --username hello --password 123svn://192.168.233.203/repo

     

    SVN版本库更新

    svn up /svn/repo

    上传文件到服务器

    [root@localhost ]# touch /svn/repo/test.php        #所有的动作必须在repo版本库中完成

    [root@localhost ]# svn add /svn/repo/test.php           #上传test.php文件到svn服务器

    删除服务器上的文件

    [root@localhost ]# svn rm /svn/repo/test.php--force

    查看版本库内容

    [root@localhost ~]# svn list /svn/repo/

     

    ------------------------------------------------------------------------------------------------------------------------

    到此,SVN客户端就配置完成了

     

     

    创建版本库:
    终端输入:svnadmin create [路径]
    该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。

    将文件导入版本库:
    终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
    源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
    例如将当前目录导入版本库myproject
    svn import . file:///home/user/svn/myproject -m"
    导入文件"

    从版本库导出:
    导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
    终端输入:svn co [版本库路径
    例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .

     

  • 相关阅读:
    多线程
    集合与文件操作
    Net基础复习
    form表单
    html的常用标签和属性
    C#泛型与linq
    2020 年度总结 & OI 生涯感想——当年酒狂自负
    TODO-List
    Attention Points
    THUWC2020 游记
  • 原文地址:https://www.cnblogs.com/mlqin/p/4663922.html
Copyright © 2011-2022 走看看