我最近对我的存储库进行了一些重组。为了加快速度,我决定使用管道而不是临时文件和 GUI:
在 VisualSVN 的“Repositories Root”目录中,我执行了以下操作:
svnadmin create proj1
svnadmin dump common | svndumpfilter include trunk/proj1 | svnadmin load proj1 > NUL 2> NUL
现在,当我打开 VisualSVN Server 管理器时,我会在“Repositories”文件夹下看到新的存储库,并且浏览显示数据就是我想要的数据。他们甚至似乎适当地继承了权限。 “验证存储库...”成功。
但是当我使用网络浏览器或 SVN 客户端检查存储库时,我得到:
$ svn checkout https://svn.mycompany.com/svn/proj1
svn: E170013: Unable to connect to a repository at URL 'https://svn.mycompany.com/svn/proj1'
svn: E175013: Access to '/svn/proj1' forbidden
(对于我知道不存在的项目来说,这是相同的消息)。
如何让 VisualSVN 为该存储库提供服务?
“导入现有存储库”功能仅支持“复制”或“从转储加载”,这两个功能我已经完成了。如果我选择“从另一个位置复制”并选择存储库,我会得到“名为 proj1 的存储库已存在。请选择另一个名称”。
我也尝试过重新启动服务。
据我所知,您使用了
svnadmin create
命令来创建新的存储库。它不会创建应存在于存储库的 /conf 目录中的 authz 文件。当这些文件丢失时,将禁止访问存储库(因为这被认为是意外的并且必须修复)。
您可以通过检查 Windows 事件查看器中的“VisualSVN Server”事件日志来识别此问题。我认为您会看到几个关于丢失
VisualSVN-WinAuthz.ini
或 VisualSVN-SvnAuthz.ini
文件的错误级别事件。