• linux(centeros)svn的安装


    SVN

    linux搭建svn服务器
    参考:http://www.cnblogs.com/chaichuan/p/3758173.html
    Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理随着时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。


    SVN中的一些概念

    (1). repository(源代码库)

           源代码统一存放的地方

    (2). Checkout (提取)

           下载代码,客户端通过checkout从服务器(Subversion)端下载源代码

    (3). Commit (提交)

           从服务器下载的代码,如果做了变更则需要提交到服务器端

    (4). Update (更新)

           本地已经checkout了一份代码,如果别人对代码做了更改并且已经提交,那么update可以更新别人更改后的代码,一般在提交代码前都需要更新一下代码,防止自己的代码覆盖了别人更改了的代码
           
    SVN管理源代码是以行为单位的,如果两个程序员修改的不是同一行代码,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Confict, 冲突,如果发生冲突则需要手动的解决冲突,切不可直接提交。


    windows常用的客户端软件:TortoiseSVN

    SVN 服务器搭建(centeros linux)

    yum install -y subversion

    或者

    yum -y install svn

    验证是否安装成功

    svnserve --version

    创建SVN 版本库

    mkdir svn
    svnadmin create svn/rep01
    

    rep01为版本库的名称,rep01的结构如下

    $ ls svn/rep01/
    conf  db  format  hooks  locks  README.txt

    svn配置文件

    $ ls svn/rep01/conf/
    authz  passwd  svnserve.conf

    (1)svnserve.conf:  svn服务配置文件下。
    (2)passwd: 用户名口令文件。
    (3)authz: 权限配置文件。

    svnserve.conf 文件, 该文件配置项分为以下5项:
    anon-access: 控制非鉴权用户访问版本库的权限。
    auth-access:  控制鉴权用户访问版本库的权限。
    password-db: 指定用户名口令文件名。取消注释使用默认文件,也就是conf同级的那个passwd文件,取消注释前面不能有任何空格,不然会报错
    authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。取消注释使用默认文件,也就是conf同级的那个authz文件,取消注释前面不能有任何空格,不然会报错
    realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

    当指定 password-db 和  authz-db 时连接svn才提示输入密码
           
    passwd文件

    [users]
    # harry = harryssecret
    # sally = sallyssecret    
    
    username = password

    #代表注释
    authz文件

    [aliases]  #在这个组下面定义别名
    # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
    
    [groups]  #定义组的概念,比如harry,sally是一组
    # harry_and_sally = harry,sally
    # harry_sally_and_joe = harry,sally,&joe
    
    # [/foo/bar] #指定配置库
    # harry = rw # 用户harry有读写权限
    # &joe = r # &joe代表别名joe
    # * =
    
    # [repository:/baz/fuz] #指定配置库 repository配置库名称  /baz/fuz配置库repository下的路径
    # @harry_and_sally = rw  # @harry_and_sally代表组harry_and_sally
    # * = r    # *通配符,代表所有人  $anonymous 匿名用户  $authenticated非匿名用户
    

    启动和停止SVN服务

    启动SVN服务:

    svnserve -d -r svn/rep01
    

    -d表示后台运行
    -r 指定配置库路径

    命令行测试

    mkdir test
    cd  test
    svn co svn://localhost/rep01
    


    停止SVN服务:

    ps -aux | grep svn
    kill -9 进程杀掉

    或者

     killall svnserve

    注意如下配置

    [/]
    * = rw
    
    [rep01:/]
    test = rw

    则启动配置库的时候需要svnserve -d -r svn,不然会找不到配置库rep01

    客户端连接SVN 服务器
    地址:svn://ip/repository  如:svn://192.168.19.100/rep01

    http访问svn

    参考:http://www.cnblogs.com/ayanmw/archive/2011/12/19/2294054.html

    安装apache相关组件

    yum -y install mod_dav_svn httpd 

    /etc/httpd/conf.d/目录下会存在文件subversion.conf,其配置内容如下

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    
    #
    # Example configuration to enable HTTP access for a directory
    # containing Subversion repositories, "/var/www/svn".  Each repository
    # must be both:
    #
    #   a) readable and writable by the 'apache' user, and
    #
    #   b) labelled with the 'httpd_sys_content_t' context if using
    #   SELinux
    #
    
    #
    # To create a new repository "http://localhost/repos/stuff" using
    # this configuration, run as root:
    #
    #   # cd /var/www/svn
    #   # svnadmin create stuff   
    #   # chown -R apache.apache stuff
    #   # chcon -R -t httpd_sys_content_t stuff
    #
    
    #<Location /repos>
    #   DAV svn
    #   SVNParentPath /var/www/svn
    #
    #   # Limit write permission to list of valid users.
    #   <LimitExcept GET PROPFIND OPTIONS REPORT>
    #      # Require SSL connection for password protection.
    #      # SSLRequireSSL
    #
    #      AuthType Basic
    #      AuthName "Authorization Realm"
    #      AuthUserFile /path/to/passwdfile
    #      Require valid-user
    #   </LimitExcept>
    #</Location>  

    <Location /repos>:/repos为虚拟目录,对应SVNParentPath指定的实际目录

    AuthUserFile:指定用户名密码文件,该文件使用htpasswd命令创建

    SVNParentPath:指定了SVN配置库的父目录

    AuthUserFile 用户添加

    htpasswd -h查看命令帮助
    第一次添加用户 

    htpasswd -c passwd test

    passwd:文件的名称
    test:用户名
    再次添加用户

    htpasswd  passwd test

    启动apache服务

    sudo service httpd restart 

    注意修改配置库目录的权限,不然会一直报权限问题的

    chown -R apache:apache rep01   
    chcon -R -t httpd_sys_content_t rep01 
    

     此刻就可以使用http://localhost/repos/stuff   repos为映射的虚拟路径,stuff为配置库


           
           
           
           

  • 相关阅读:
    学习 CosmosDB (NoSql)
    <linux-sed> sed基本用法
    grep 正则表达式用引号括起来和元字符加反斜杠转义的测试
    CACTI批量添加linux主机sh脚本
    一个简单的C共享库的创建及Python调用此库的方法
    Linux下的C的开发之GCC的初级使用
    AcitveReocrd事件和关联操作
    Samrty技术的 初步了解
    Ubuntu下配置Tomcat
    在ubuntu中安装jdk
  • 原文地址:https://www.cnblogs.com/heml/p/6881556.html
Copyright © 2020-2023  润新知