我刚刚将现有的 svn 存储库迁移到新服务器。以前,用户使用 tortoise-svn 通过 http 进行连接,提交时,他们的修订版本会通过 svn:author 属性与其用户关联。
然而现在,移动之后,用户使用 tortoise-svn 通过 https 进行连接,并且修订不再具有关联的作者。
经过一番研究,我怀疑由于用户现在在创建 https 连接时进行身份验证,而不是通过 subversion,因此该信息不会随他们的修订更改一起传递。但是,我没有在 tortoise 或软件链的下游找到任何直接提供此信息的方法。
但我可能完全错了。谢谢你的帮助。
软件堆栈:
Tortoise-svn v1.6.10通过 https 连接到...
Apache v2.2在Ubuntu 10.04跑步 ...
修改 dav_svn和 ...
Subversion v1.6.12
答案1
无论您使用的是 http 还是 https,Apache 都可以将身份验证信息发送到 Subversion 存储库,前提是相关资源(Subversion 存储库)受授权要求保护。在存储库的 <Location> 或 <Directory> 块中(或路径中的更高位置),您是否有:
需要有效用户
或者与下列一项或两项效果相同的内容:
需要用户 joe jane george 需要群组开发者管理员
如果存储库实际上不需要他们的授权,则他们的身份验证被视为无关紧要,不会传递给 Subversion,从而导致匿名提交。
希望这能给你指明正确的方向。
答案2
我的问题的原因是 svn 用户根本没有进行身份验证。
在初始设置 svn/apache 后,我在 http.conf 文件中添加了一条规则,允许本地网络上的用户访问该规则,该规则也适用于 svn 位置。导致 svn 用户不再被提示进行身份验证。我起初没有注意到这一点,因为我以为我的凭据被 TortoiseSVN 缓存了。
我更加困惑了,因为在 svn location 块中我指定了“Require valid-user”。事实证明,这只要求在提供用户的情况下验证用户。这不会阻止非用户的访问。
干杯!