在上一篇文章中我们搭建了svn服务器以及创建了一个demo仓库,使用匿名用户将这个demo仓库co到了本地。而这篇文章将会来学习一下如何设定相关的用户/组/权限相关信息。
svnadmin create创建了什么
svnadmin create创建了什么?当然是一个仓库。接下来我们就来看一下什么都没有动的时候,创建出来的都是些什么,种棵树,会看的清楚一些:
[root@liumiaocn svn]# docker exec -it svn-server sh
/data/svn # cd demo-repo
/data/svn/demo-repo # ls
README.txt conf db format hooks locks
/data/svn/demo-repo # tree .
sh: tree: not found
/data/svn/demo-repo # apk add tree
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tree (1.7.0-r1)
Executing busybox-1.28.4-r0.trigger
OK: 12 MiB in 25 packages
/data/svn/demo-repo # tree .
从这棵树上可以看到大概有10个目录和28个文件构成了初期的仓库结构。
接下来我们简单地看一下这些主要的目录和文件
目录 | 用途说明 |
---|---|
conf | 当前版本库所使用的配置文件的保存目录 |
db | 版本数据的保存目录 |
db/revprops | 版本属性 |
db/revs | 版本对象文件的实际保存目录 |
hooks | svn提供hook操作,诸如提交之前后者之后所回调的功能相关的模版文件,后续会结合实例进行说明 |
locks | 存储操作锁的目录 |
缺省方式下的主要模具就是这些,当然如果使用dav模式,还会有dav目录等。而主要的文件以及作用简单说明如下:
文件 | 用途说明 |
---|---|
db/uuid | uuid是universal unique IDentifier缩写,用于确定版本库的全局唯一标志。里面会存放多个uuid |
db/fs-type | 版本库的存储格式,svn支持fsfs和bdb两种方式,缺省是fsfs |
format | 格式信息,为一个整数。客户端工作目录的拷贝中代表具体的格式是SVN 1.x 比如12表示SVN 1.8的工作拷贝格式,但似乎1.7的一些版本也是12, 不同的版本一般有不同的format的值。 |
hooks/*.tmpl | svn动作生命周期中不同阶段会调用的钩子函数的模版文件 |
conf/svnserve.conf | svn服务配置文件,修正需要svnserve重新启动,容器需要restart |
conf/passwd | 用户信息设定文件,修改即时生效 |
conf/authz | 权限设定文件,修改即时生效 |
接下来我们来看一下在上篇文章中svn co的一个空的仓库。svn co和git clone一样,都会生成一个隐藏的文件夹,git会生成一个.git的文件夹,而svn会生成.svn
[root@platform demo-repo]# ls -lart
total 4
dr-xr-x---. 15 root root 4096 Aug 24 20:08 ..
drwxr-xr-x. 3 root root 18 Aug 24 20:08 .
drwxr-xr-x. 4 root root 75 Aug 24 20:08 .svn
[root@platform demo-repo]# cd .svn
[root@platform .svn]# ls
entries format pristine tmp wc.db
[root@platform .svn]#
可以看到working copy的format是12,
[root@platform .svn]# cat format
12
[root@platform .svn]#
使用svn info可以看到整个工作区的基本信息
[root@platform .svn]# cd ..
[root@platform demo-repo]