六、修改权限密码文件,配置文件修改立即生效,不用重启,2个项目库公用一个密码和认证文件
# cat /usr/local/svn/conf/passwd
[users]
zhao = 123456
lee = 654321
# cat /usr/local/svn/conf/authz
[groups]
admin = zhao
[/] #表示根目录,根目录是指svnserve启动时指定的,比如/opt/svndata目录,表示对全部版本库设置权限
@admin = rw
[repos1:/abc/aaa]
lee = rw
[repos2:/pass]
lee =
authz 说明:
[groups]
= ,
[:/项目/目录]
@ =
=
/表示根目录及以下,根目录是svnserve启动时指定的,刚才指定的为/opt/svndata,这样/就是表示对全部版本库设置权限
repos1:/表示对版本库1设置权限
repos2:/abc对版本库2中的abc项目设置权限
repos2:/abc/aaa对版本库2中的abc项目的aaa目录设置权限
7.svn配置完毕,删除无用文件
rm /opt/svndata/repos1/conf/authz
rm /opt/svndata/repos1/conf/passwd
rm /opt/svndata/repos2/conf/authz
rm /opt/svndata/repos2/conf/passwd
8、启动SVN
svnserve -d -r /opt/svndata
-d:以daemon方式后台运行
-r :指定根目录/opt/svndata
#项目导入,在linux上先将源代码目录run里面的东西导入在svn仓库中的db里面,这样在windows客户端checkout就可导出来了,显示的就是代码
#svn import run/ file:///opt/svndata/repos2/ -m "initial import"
run目录就是源代码目录
在Linux上进行windows的check等操作
1、将项目2中代码check出来放在网站应用指定的目录中,这个和windows一样
co就是check的意思
svn co svn://127.0.0.1/repos2 /home/web/repos2
2、使用svnadmin create建立的版本库下面会有一个hooks目录,里面有很多钩子程序,这样也就是在windows上commit操作提交后就会自动执行post-commit钩子程序
cd /opt/svndata/repos1/hooks 不同版本目录不一样
vi post-commit
#!/bin/bash
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/usr/bin/svn update /home/web/repos1 --username zhao --password 123456
保存后,加上权限
chmoe +x post-commit
这样在windows传完新代码文件后就会自动的指定钩子程序自动同步到代码目录中去
这里的各配置项意思是:
anon-access指匿名访问的权限,可以是read,write,none,默认为read,这个建议配为none
auth-access指认证用户的权限,可以是read,write,none,默认为write
password-db指密码数据库的路径,去掉前面的,存的是认证用户的用户名和密码,
username=passwd
authz-db实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限