一、安装
shellyum install -y subversion
### 二、创建一个 SVN 仓库**创建一个仓库 Documents/svn/learn
**shellsvnadmin create ~/Documents/svn/learn
目录结构如下bash➜ 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.lock10 directories, 28 files➜ learn
### 三、配置用户权限在 svn/learn/conf 文件夹中有如下文件,我们需要分别进行修改。bash├── conf│ ├── authz│ ├── hooks-env.tmpl│ ├── passwd│ └── svnserve.conf
1. 修改 svnserve.conf - 将下面标注出来的 4 个配置项前面的 # 和 空格 都去掉 - anon-access 改成 none。表示禁止匿名访问,需要帐号密码才能访问 bash ### 去掉注释,不允许匿名访问 anon-access = none auth-access = write ### 使用密码 password-db = passwd ### 使用 用户配置 authz-db = authz
2. 修改 passwd。在 [users] 下面添加帐号和密码(这里我配置了两个用户) bash # 添加两个用户,用户名 = 密码 root = root yang = yang
3. 修改 authz bash # 创建一个 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 配置文件中对版本库权限的配置应这样写:>> bash> [groups]> admin=user1> dev=user2> [/]> @admin=rw> user2=r>
>> 使用类似这样的 URL:svn://127.0.0.1/ 即可访问 runoob 版本库>> 方式二:指定到版本库的上级目录 (称之为多库 svnserve 方式)>> svnserve -d -r ~/Documents/svn
>> 这种情况,一个 svnserve 可以为多个版本库工作>> authz 配置文件中对版本库权限的配置应这样写:>> bash> [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 服务器:多库bashsvnserve -d -r ~/Documents/svn
idea 连接URL : svn://localhost/learn或者运行如下命令也可以启动:单库bashsvnserve -d -r ~/Documents/svn/learn
### 五、使用 http 协议> https://www.vultr.com/docs/how-to-setup-an-apache-subversion-svn-server-on-centos-7