SVN 配置和安装

289 阅读2分钟

一、安装

yum install -y subversion

二、创建一个 SVN 仓库

**创建一个仓库 Documents/svn/learn **

svnadmin create ~/Documents/svn/learn

目录结构如下

➜  learn pwd                
/Users/yang/Documents/svn/learn
➜  learn tree               
.
├── README.txt
├── conf
│   ├── authz
│   ├── hooks-env.tmpl
│   ├── passwd
│   └── svnserve.conf
├── db
│   ├── current
│   ├── format
│   ├── fs-type
│   ├── fsfs.conf
│   ├── 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-logs.lock
    └── db.lock

10 directories, 28 files
➜  learn 

三、配置用户权限

svn/learn/conf 文件夹中有如下文件,我们需要分别进行修改。

├── conf
│   ├── authz
│   ├── hooks-env.tmpl
│   ├── passwd
│   └── svnserve.conf
  1. 修改 svnserve.conf

    • 将下面标注出来的 4 个配置项前面的 #空格 都去掉
    • anon-access 改成 none。表示禁止匿名访问,需要帐号密码才能访问
    ### 去掉注释,不允许匿名访问
    anon-access = none
    auth-access = write
    ### 使用密码
    password-db = passwd
    ### 使用 用户配置
    authz-db = authz
    
  2. 修改 passwd。在 [users] 下面添加帐号和密码(这里我配置了两个用户)

    # 添加两个用户,用户名 = 密码
    root = root
    yang = yang
    
  3. 修改 authz

    # 创建一个 root 群组,用用户 root ,创建了一个 dev 开发者群组,有 yang 
    root = root
    dev = yang
    
    # root 用户 和 root 群组 对所有的资源都有读写的权限
    [/]
    @root = rw
    root =rw
    
    # dev 群组 和 root 用户都有对 learn 库的所有读写权限
    [learn:/]
    root = rw
    @dev = rw
    

四、启动 SVN 服务

使用命令 svnserve 启动服务

svnserve -d -r 目录 --listen-port 端口号

  • -r: 配置方式决定了版本库访问方式。
  • --listen-port: 指定 SVN 监听端口,不加此参数,SVN 默认监听 3690

方式一:-r 直接指定到版本库 (称之为单库 svnserve 方式)

svnserve -d -r ~/Documents/svn/learn

在这种情况下,一个 svnserve 只能为一个版本库工作。

authz 配置文件中对版本库权限的配置应这样写:

[groups]
admin=user1
dev=user2
[/]
@admin=rw
user2=r

使用类似这样的 URL:svn://127.0.0.1/ 即可访问 runoob 版本库

方式二:指定到版本库的上级目录 (称之为多库 svnserve 方式)

svnserve -d -r ~/Documents/svn

这种情况,一个 svnserve 可以为多个版本库工作

authz 配置文件中对版本库权限的配置应这样写:

[groups]
admin=user1
dev=user2
[runoob:/]
@admin=rw
user2=r

[runoob01:/]
@admin=rw
user2=r

如果此时你还用 [/],则表示所有库的根目录,同理,[/src] 表示所有库的根目录下的 src 目录。

使用类似这样的 URL:svn://192.168.0.1/runoob 即可访问 runoob 版本库。

我们可以在终端中运行如下命令启动 svn 服务器:多库

svnserve -d -r ~/Documents/svn

idea 连接

URL : svn://localhost/learn

或者运行如下命令也可以启动:单库

svnserve -d -r ~/Documents/svn/learn

五、使用 http 协议

www.vultr.com/docs/how-to…

本篇文章由一文多发平台ArtiPub自动发布