1.建立项目版本库
创建项目版本库使用命令svnadmin。
创建一个新的subversion项目:project。
[root@xiaoyu ~]# svnadmin create /application/svndata/project
[root@xiaoyu ~]# ls -ld /application/svndata/project/
drwxr-xr-x 6 root root 86 Sep 19 20:38 /application/svndata/project/
提示1:创建SVN项目版本库不能使用命令mkdir创建,因为在版本库后,版本库会有一些结构性文件:
[root@xiaoyu ~]# ll /application/svndata/project/
total 8
drwxr-xr-x 2 root root 54 Sep 19 20:38 conf
drwxr-sr-x 6 root root 233 Sep 19 20:38 db
-r--r--r-- 1 root root 2 Sep 19 20:38 format
drwxr-xr-x 2 root root 231 Sep 19 20:38 hooks
drwxr-xr-x 2 root root 41 Sep 19 20:38 locks
-rw-r--r-- 1 root root 229 Sep 19 20:38 README.txt
提示2:查看svnadmin命令帮助的方法:
[root@xiaoyu ~]# svnadmin --help
general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]
Type 'svnadmin help <subcommand>' for help on a specific subcommand.
Type 'svnadmin --version' to see the program version and FS modules.
Available subcommands:
crashtest
create
deltify
dump
help (?, h)
hotcopy
list-dblogs
list-unused-dblogs
load
lslocks
lstxns
pack
recover
rmlocks
rmtxns
setlog
setrevprop
setuuid
upgrade
verify
[root@xiaoyu ~]#
上述的帮助说明svnadmin后可接多个参数与,比如create、help等。
[root@xiaoyu ~]# svnadmin help create -->等价于svnadmin --help create
create: usage: svnadmin create REPOS_PATH
Create a new, empty repository at REPOS_PATH.
Valid options:
--bdb-txn-nosync : disable fsync at transaction commit [Berkeley DB]
--bdb-log-keep : disable automatic log file removal [Berkeley DB]
--config-dir ARG : read user configuration files from directory ARG
--fs-type ARG : type of repository: 'fsfs' (default) or 'bdb'
--pre-1.4-compatible : use format compatible with Subversion versions
earlier than 1.4
--pre-1.5-compatible : use format compatible with Subversion versions
earlier than 1.5
--pre-1.6-compatible : use format compatible with Subversion versions
earlier than 1.6
2.调整SVN配置文件及权限文件
svn的配置文件在项目版本库目录project下的conf目录下, svnserve.conf
[root@xiaoyu ~]# ll /application/svndata/project/conf/
total 12
-rw-r--r-- 1 root root 1080 Sep 19 20:38 authz -->权限文件
-rw-r--r-- 1 root root 309 Sep 19 20:38 passwd -->用户、密码文件
-rw-r--r-- 1 root root 3090 Sep 19 20:38 svnserve.conf -->配置文件
修改配置文件前先进行备份:
[root@xiaoyu ~]# cd /application/svndata/project/conf/
[root@xiaoyu conf]# cp -a svnserve.conf svnserve.conf.$(date +%F)
修改前的配置文件部分内容:
[root@xiaoyu conf]# egrep "\-access|\-db =" svnserve.conf
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
提示:记住修改时要去掉"#"号后的空格,开头不能有空格
需要修改的内容:
[root@xiaoyu conf]#vim svnserve.conf
anon-access = none
auth-access = write
password-db = /application/svnpasswd/passwd
authz-db = /application/svnpasswd/authz
快速修改方法:
[root@xiaoyu conf]# sed -i 's/# anon-access = read/anon-access = none/' svnserve.conf
[root@xiaoyu conf]# sed -i 's/# auth-access = write/auth-access = write/' svnserve.conf
[root@xiaoyu conf]# sed -i 's%# password-db = passwd%password-db = /application/svnpasswd/passwd%' svnserve.conf
[root@xiaoyu conf]# sed -i 's%# authz-db = authz%authz-db = /application/svnpasswd/authz%' svnserve.conf
修改后的查询结果如下:
[root@xiaoyu conf]# egrep "\-access|\-db =" svnserve.conf
anon-access = none
auth-access = write
password-db = /application/svnpasswd/passwd
authz-db = /application/svnpasswd/authz
重启SVN服务:
pkill svnserve
svnserve -d -r /application/svndata/
或
kill -USR1 `cat /application/svndata/svn.pid`
svnserve -d -r /application/svndata/ --pid-file=/application/svndata/svn.pid
3.拷贝用户和密码认证文件(passwd)、权限文件(authz)到之前创建的用户保存用户和密码文件的/application/svnpasswd/目录下
由于在安装后新建了 /application/svnpasswd/目录,目录是空的,所以将/application/svndata/project/conf目录下的用户和密码认证文件(passwd)、权限文件(authz)作为模板:
[root@xiaoyu conf]# cp -a authz /application/svnpasswd/
[root@xiaoyu conf]# cp -a passwd /application/svnpasswd/
[root@xiaoyu conf]# ll /application/svnpasswd/
total 8
-rw-r--r-- 1 root root 1080 Sep 19 20:38 authz
-rw-r--r-- 1 root root 309 Sep 19 20:38 passwd
由于用户的密码存储是明文的,所以注意文件的权限,为了安全,此处将权限改为700.
[root@xiaoyu conf]# chmod -R 700 /application/svnpasswd/
[root@xiaoyu conf]# ll /application/svnpasswd/
total 8
-rwx------ 1 root root 1080 Sep 19 20:38 authz
-rwx------ 1 root root 309 Sep 19 20:38 passwd
4.配置用户密码及权限:
(1)用户及密码配置:
[root@xiaoyu ~]# cd /application/svnpasswd/
[root@xiaoyu svnpasswd]# vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
xiaoyu = 123456 -->根据文件中给出的格式,增加此行
提示:
(a)等号前svn账号,等号后为svn密码,密码是明文的,所以要注意密码文件的权限
(b)更改svnserve.conf时,需要重启svn服务,更改passwd、不需要重启
(2)权限配置:
[root@xiaoyu svnpasswd]# vi authz -->增加如下两行
[project:/]
xiaoyu = rw
提示:
a.权限配置文件中出现的用户名必须已在用户配置文件中定义;
b.对权限配置文件的修改立即生效,不必重启svn
c.用户组格式:
一个用户组可以包含1个或多个用户,用户之间用逗号分隔
[groups]
harry_and_sally = harry,sally
harry_sally_and_joe = harry,sally,&joe
d.版本库目录格式:
[版本库:/项目/目录]
[repository:/baz/fuz]
@用户组名 = 权限
@harry_and_sally = rw
用户名 = 权限
* = r
其中,方括号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,在此文中为/application/svndata/,[/]就是表示对全部版本库设置权限。
[project:/] 表示对版本库repos设置权限;
[project:/xiaoyu] 表示对版本库project中的xiaoyu项目设置权限;
[project:/xiaoyu/syt] 表示对版本库project中的xiaoyu项目中的syt项目设置权限
转载于:https://blog.51cto.com/shayatou1990/2177372
1240

被折叠的 条评论
为什么被折叠?



