一、安装
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
-
修改 svnserve.conf
- 将下面标注出来的 4 个配置项前面的 # 和 空格 都去掉
- anon-access 改成 none。表示禁止匿名访问,需要帐号密码才能访问
### 去掉注释,不允许匿名访问 anon-access = none auth-access = write ### 使用密码 password-db = passwd ### 使用 用户配置 authz-db = authz -
修改 passwd。在 [users] 下面添加帐号和密码(这里我配置了两个用户)
# 添加两个用户,用户名 = 密码 root = root yang = yang -
修改 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 协议
本篇文章由一文多发平台ArtiPub自动发布