0

所以我已经使用 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以监视控制台输出:当我结帐时,控制台上没有显示任何内容。

对于我可能做错的事情,我真的很感激任何反馈,谢谢!

4

1 回答 1

0

嗯,我终于弄明白了,我的passwd文件格式不对,应该是这样的

[users]
dany = unencrypted password

我会做更多的搜索,看看你是否真的可以加密密码

于 2014-05-07T15:32:03.410 回答