昨儿忽然觉得应该在自己本地也整一个svn,将平时的demo代码都管理起来。于是找来软件开始动手。结果由于自己6个月前写的一个svn server安装指南,不够详细,同时自己对于subversion和tortoise的关系,以前没完全整清楚,导致出现很多问题,一直折腾了4,5个小时,才解决问题。
一开始是误解了svn://这种访问方式,网上资料说这种方式可以访问repository,结果我试了,却不行。最后才发现是自己理解错了subversion及其客户端的区别。我自己原有的tortoise是subversion客户端,不能作为服务器使用。找来服务器版本后,还是不能用svn://访问,查了很多资料,终于知道原来这种方式是另外一种服务器插件的访问方式,类似于apache的http访问一样,是subserve的访问协议。subversion自带的是file:///协议。
多版本库时:
1要么对于parent下的所有版本库使用同一个权限文件,此时可以如此设置,如下:
httpd.conf设置:
<Location /svn>
DAV svn
SVNParentPath d:/repository
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "D:/repository/svn_auth_passwd"
AuthzSVNAccessFile "D:/repository/svn_auth_access"
Require valid-user
</Location>
auth_access文件:
[groups]
GAdmin = admin
GDev = luozhen
[/]
@GAdmin = rw
[workbench:/]
@GDev = rw
2要么对每个版本库使用自己的权限文件,即不使用svnparentpath,而是用svnpath。如下:
<Location /svn/work>
DAV svn
SVNPath D:/repository/work
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "D:/repository/work/svn_auth_passwd"
AuthzSVNAccessFile "D:/repository/work/svn_auth_access"
Require valid-user
</Location>
<Location /svn/workbench>
DAV svn
SVNPath D:/repository/workbench
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "D:/repository/workbench/svn_auth_passwd"
AuthzSVNAccessFile "D:/repository/workbench/svn_auth_access"
Require valid-user
</Location>
经过验证,svnparentpath和svnpath不能共存。即:如果有一个版本库单独设置了svnpath,则再有版本库添加的话,也必须单独设置svnpath,不能再使用svnparentpath,否则即使页面可以正常访问,但客户端无法使用import等功能。会报“路径”错误。