所以我已经使用 SVN over HTTP(Apache 和 WebDav)有一段时间了,我想在运行最新 ArchLinux 的 Raspberry Pi 上放弃 apache 并用 svnserve 替换它。
我首先启用了 svnserve 服务:
systemctl enable svnserve
然后,我将必要的参数添加到配置文件中的命令中/etc/config.d/svnserve
,现在包含以下内容
SVNSERVE_ARGS="-r /media/USB/repositories --config-file /media/USB/svnserve.conf"
SVNSERVE_USER="svn"
记录/media/USB
是一个挂载,/dev/sda1
它是一个始终插入的 NTFS 存储设备。
我有大约 70 个存储库,因此使用conf/
每个存储库中的目录来控制访问会很乏味,据我所知,我可以做与 Apache 上的 DAV 相同的事情,并有一个配置文件来管理它们!
所以我把下面的所有 3 个文件都放在 /media/USB 下:
svnserve.conf
[general]
anon-access = none
auth-access = write
authz-db = subversion.authz
password-db = subversion.passwd
realm = Subversion
颠覆.authz
[/]
* = r
dany = rw
颠覆.passwd
dany = some password hash
现在,当我使用 TortoiseSVN 结帐 URL 时,svn://TheCorrectIp/RepoName
我收到以下错误:
Error: No access allowed to this repository
我什至没有提示输入用户/密码组合。
这是我到目前为止没有运气的尝试(每次试用后重新启动服务):
- 清除 TortoiseSVN 的密码缓存
- 复制存储库
conf/
目录下的所有 3 个配置文件(只是看看这是否是路径问题) - 在authz-db中使用绝对路径和相对路径(相对于存储库的 conf,如文档中所示,以及相对于 svnserve.conf 文件)
- 创建一个全新的存储库并单独使用其 conf 目录
在摆弄 svnserve.conf 时,我注意到发生了一些奇怪的事情:
- 如果我注释掉 authz-db 和 password-db 我仍然会遇到同样的问题
- 如果我将 anon-access 更改为读取或写入,并注释掉其他所有内容,我就可以签出存储库并且不会要求我提供任何组合。如果我保持匿名访问不变并放回 authz-db 或 password-db 我无法再次结帐
- 结帐时停止服务并运行
svnserve -d --forground -r /media/USB/repositories --config-file /media/USB/svnserve.conf
以监视控制台输出:当我结帐时,控制台上没有显示任何内容。
对于我可能做错的事情,我真的很感激任何反馈,谢谢!