SVN服务器部署--(http方式)

Svn服务器部署

svn简介

Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. 由于这个特点, 很多人把版本控制系统 看成是一种 “时间机器”.

Svn的组件

  1. svn 客户端命令行工具
  2. svnversion 用于报告工作副本状态 (就项目的版本号而言) 的工具
  3. svnlook可以直接检查仓库的工具
  4. svnadmin 用于创建, 调整或修复 Subversion 仓库的工具
  5. mod_dav_svn Apache HTTP 服务器插件, 该插件允许用户通过网络访问仓库
  6. svnserve 一个定制的, 可独立运行的服务器程序, 可以以守护进程方式运行, 也可以被 SSH 调用, 这是另一种允许用户通过网络访问仓库的方法
  7. svndumpfilter 过滤 Subversion 仓库转储数据流的程序
  8. svnsync 可以跨越网络对仓库进行增量镜像备份的程序
  9. svnrdump 可以跨越网络对仓库历史进行转储和加载的程序
  10. svnmucc 该工具支持在没有工作副本的情况下, 在一个单独的提交中对多个 仓库执行基于 URL 的操作

    Svn 服务端运行方式

    • 独立服务器访问s svn://svn.server.net/svn_test
    • 借助apache等http服务 http://svn.server.net/svn_test
    • 本地文件 file:///svn_test

      常用Svn软件工具

      windows

  11. server端VisualSVN
  12. client端TrotoiseSVN

    linux

  13. subversion

基础环境

  • Centos7.4 x86_64

subversion软件安装

yum install subversion mod\_svn_dav httpd

Svn服务器部署

  • 库目录/home/SVN_REPO
  • 帐号验证文件目录/etc/subversion
  • 访问路径http://ip_address/svn/

    创建密码验证文件

    ####### 示例创建user01的svn用户
    cd /etc/subversion
    htpasswd -c svnuser user01

    htpasswd命令用法

  • -c:创建一个加密文件;
  • -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
  • -m:默认采用MD5算法对密码进行加密;
  • -d:采用CRYPT算法对密码进行加密;
  • -p:不对密码进行进行加密,即明文密码;
  • -s:采用SHA算法对密码进行加密;
  • -b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
  • -D:删除指定的用户。

    示例
    利用htpasswd命令添加用户 (用户user01,密码123456)

    htpasswd -bc svnuser user01 123456

    在原有密码文件中增加下一个用户(更新用户密码与之相同)

    htpasswd -b svnuser user02 123456

    删除一个用户

    htpasswd -D svnuser user02

    修改httpd配置

    ####### 不同的系统路径略有不同
    vi /etc/httpd/conf.modules.d/10-subversion.conf

    <location /svn>
    DAV svn
    SVNListParentPath On
    SVNParentPath /home/SVN_REPO/
    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /etc/subversion/svnuser
    Require valid-user
    <IfModule mod_authz_svn.c>
    #AuthzSVNAccessFile /etc/httpd/authz
    AuthzSVNReposRelativeAccessFile authz
    </IfModule>
    </location>

创建svn库

####### 创建一个名为svn_test库
cd /home/SVN_REPO
svnadmin create svn_test

配置访问权限

添加user01对svn_test根目录读写权限
cd /home/SVN_REPO/svn_test/conf
vi authz
[svn_test:/]
user01 = rw

authz权限文件语法

[<仓库名称>:<仓库路径>] 
内容 ==书写方式
用户名 = 权限(r, rw) user01 = r
或者:
@组名 = 权限(r, rw) @group = r

猜你喜欢

转载自blog.51cto.com/xiaoma90/2104871