SVN笔记-Linux上搭建SVN多仓库环境
1、SVN环境
[root@zsx ~]# svnserve --version
svnserve, version 1.7.14 (r1542130)
compiled Sep 30 2020, 17:44:04
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
[root@zsx ~]# svn --version
svn, version 1.7.14 (r1542130)
compiled Sep 30 2020, 17:44:04
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
2、创建SVN库
2.1 创建svn仓库
[root@zsx ~]# mkdir /home/temp/repositories
因为有多个项目,因此先创建他们的根目录,并分配读写权限:
[root@zsx ~]# chmod -R 777 /home/temp/repositories
2.2 创建多项目
因为大部分公司不可能只有一个项目,因此这里建立多项目,然后再在repositories下建立第一个项目的仓储:
[root@zsx ~]# mkdir /home/temp/repositories/project1
[root@zsx ~]# svnadmin create /home/temp/repositories/project1
查看一下文件信息:
[root@zsx ~]# ll /home/temp/repositories/project1
total 8
drwxr-xr-x. 2 root root 54 Mar 20 10:06 conf
drwxr-sr-x. 6 root root 233 Mar 20 10:06 db
-r--r--r--. 1 root root 2 Mar 20 10:06 format
drwxr-xr-x. 2 root root 231 Mar 20 10:06 hooks
drwxr-xr-x. 2 root root 41 Mar 20 10:06 locks
-rw-r--r--. 1 root root 229 Mar 20 10:06 README.txt
可以查看到多了conf
, db
,format
,hooks
,locks
和README.txt
然后类似我们建立第二个项目
[root@zsx ~]# mkdir /home/temp/repositories/project2
[root@zsx ~]# svnadmin create /home/temp/repositories/project2
[root@zsx ~]# ll /home/temp/repositories/project2
total 8
drwxr-xr-x. 2 root root 54 Mar 20 10:07 conf
drwxr-sr-x. 6 root root 233 Mar 20 10:07 db
-r--r--r--. 1 root root 2 Mar 20 10:07 format
drwxr-xr-x. 2 root root 231 Mar 20 10:07 hooks
drwxr-xr-x. 2 root root 41 Mar 20 10:07 locks
-rw-r--r--. 1 root root 229 Mar 20 10:07 README.txt
2.3 统一管理多项目
为了控制两个项目的权限,我们将账户密码和授权文件放到项目根目录下。
通过cp
命令一次将两个文件移动到根目录下:
[root@zsx repositories]# cp /home/temp/repositories/project1/conf/authz /home/temp/repositories/project1/conf/passwd /home/temp/repositories
[root@zsx repositories]# ll
total 8
-rw-r--r--. 1 root root 1080 Mar 20 10:16 authz
-rw-r--r--. 1 root root 309 Mar 20 10:16 passwd
drwxr-xr-x. 6 root root 86 Mar 20 10:13 project1
drwxr-xr-x. 6 root root 86 Mar 20 10:14 project2
然后分别修改两个项目中/conf/svnserve.conf
文件:
[general]
## 未登录不可以访问
anon-access = none
## 授权后可以读写
auth-access = write
## 指定验证文件路径
password-db = /home/temp/repositories/passwd
authz-db = /home/temp/repositories/authz
## 对应项目名称即可
realm = project1
[general]
## 未登录不可以访问
anon-access = none
## 授权后可以读写
auth-access = write
## 指定验证文件路径
password-db = /home/temp/repositories/passwd
authz-db = /home/temp/repositories/authz
## 对应项目名称即可
realm = project2
这样两个项目都依赖父文件夹的authz
和passwd
了,方便统一授权和管理。
2.4 管理账户密码以及授权
分配账号:
[root@zsx repositories]# vim /home/temp/repositories/passwd
分配所有人的账号:
admin = 123456
管理授权:
[root@zsx repositories]# vim /home/temp/repositories/authz
权限控制:
[groups]
[project1:/]
# admin分配读写权限
# 或者* = rw也可以,给所有人读写权限
admin = rw
[project2:/]
# admin分配读写权限
# 或者* = rw也可以,给所有人读写权限
admin = rw
3、测试启动和检出
启动服务:
[root@zsx repositories]# svnserve -d -r /home/temp/repositories
[root@zsx repositories]# svnserve -d -r /home/temp/repositories --listen-port 3690
检出,客户端通过:
$ svn checkout svn://192.168.60.195/project1 # 检出project1
$ svn checkout svn://192.168.60.195/project2 # 检出project2
至此,svn配置结束。