svn两种架构
1,svn服务单独运行
此种方式下,svn密码明文显示,用户直接写进配置文件即可,运行服务需 (svnserve -d -r /share/apps/svn)客户端连接时用svn://
2,svn+apache
用户用htpasswd创建用户和密码,密码采用密文方式保存,服务依赖apache,不用像第一种方式打开svn服务,客户端直接访问apache即可,如http://ip/repos/xdata/......
apache+svn 需要安装模块 yum mod_dav_svn
vim /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /> DAV svn SVNParentPath /svn #根目录 AuthType Basic AuthName "Authorization Realm" AuthzSVNAccessFile /svn/authz #验证的权限文件目录 AuthUserFile /svn/passwd #密码文件,这个使用htpasswd方式新建的密文文件 Require valid-user </Location>
svn操作
svnadmin create project1 #创建项目 svn import /tmp/Xroad file:///svn/project1/ -m 'init' #给项目上传版本库(不同的目录)
cat /svn/authz
[groups] xbus = zhangsan,lisi,xiaoming [groups] xroad = zhangsan,lihua [/] zls = rw [/Project1/Xroad] @xroad = rw
客户端连接
http://127.0.0.1/Project1/Xroad
htpasswd 添加用户
htpasswd -c /svn/passwd zls #-c是只新建passwd文件,只在htpasswd新建第一个用户时使用,否则会覆盖前面的信息htpasswd -b /svn/passwd sisi sisi123 #-b 采用非交互式新建用户
svn有自己的文件存储方式,svn服务跟目录下面的东西跟服务器本地目录没关系,都是由svn import 上传的
svn目录/svn
cd /svnsvnadmin create project1 svn的工程根目录是有svn创建的,创建工程project1mkdir -p /tmp/svn/{trunk,tags,branch}svn import /tmp/svn file:///www/svn/repo1/ -m 'init' svn import上传project1的下级目录 svnadmin create project1 svn的工程根目录是有svn创建的,创建工程project1 mkdir -p /tmp/svn/{trunk,tags,branch} svn import /tmp/svn file:///www/svn/repo1/ -m 'init' svn import上传project1的下级目录