目前我正在Windows服务器上运行一个apache web服务器,该服务器托管一堆存储库,其中包含有关谁具有写入和/或读取访问权限的个别设置。身份验证将针对我们的Active Directory完成,因此用户可以照常使用其正常凭据。到目前为止一切正常,每个人都很开心。
但是现在一位同事看到了一个有趣的效果,我可以很容易地在香草基础上重现:
在一个存储库中,她(让她称之为Alice)具有读/写访问权限,另一个人(让我们称之为Bob)只具有读访问权限。 Bob在代码中发现了一个错误并修复了它。当他尝试提交更改时,存储库拒绝了导致错误凭据的原因。鲍勃叫爱丽丝过来。他查看了代码,发现没问题,他又点击了提交按钮。保存的凭据再次失败,Alice输入了她的凭据(没有点击保存复选框),数据已提交到存储库。
一切都按预期工作,每个人都很开心......
但是后来Alice看了一下存储库的subversion日志,而那个特定承诺的作者不是她,而是Bob。
因此,似乎TortoiseSVN没有将登录凭据作为作者,而是将当前登录的用户带到Windows 7计算机上。
正如Alice告诉我的那样,我很惊讶并在服务器上设置了一个空的存储库,有两个用户(我的普通Windows帐户是只读的,一些特殊帐户具有读/写访问权限)。我使用正常的Windows凭据检查了存储库,添加了一个文件并尝试提交。它在第一次运行时失败,在应用特殊帐户的凭据后,文件被添加到仓库中。但是回购中的作者是我的正常帐户而不是特殊帐户!相比之下,在apache日志中,我可以看到该文件确实是由特殊帐户提交的,并且事先尝试使用普通帐户失败了。
由于我尝试使用新创建的存储库,因此它们没有可能导致此问题的钩子,也没有重写规则或在apache服务器上运行的其他可能导致问题的事情。 / p>
所有这些测试都是在使用Tortoise 1.7.3 - 1.7.5的Windows 7机器上完成的,结果完全相同。然后我发现一台旧机器运行Windows XP与Tortoise 1.6.5并尝试了相同的场景。这里的行为是不同的!
结论是Windows 7上的Tortoise 1.7.x在Windows XP上使用了与Tortoise 1.6.5不同的作者,但我在Tortoise的更改日志或发行说明中找不到任何有关此更改的信息。
是否还有其他人已经注意到这种变化并且存在将其切换回旧行为的方法?
答案 0 :(得分:0)
在收到bta的评论后,我做了一些尝试,并且知道我理解作者将如何以及何时被设置:
在subversion日志中显示为作者的名称取决于在提交对话框的“确定”按钮后输入的第一个成功的用户身份验证,无论此用户是否有权写入subversion存储库。如果用户没有写访问权限,则用户身份验证对话框将显示第二次,要求提供写入凭据。
通常每个人都会点击保存身份验证复选框,这导致Tortoise总是尝试使用这些凭据提交数据,从而导致成功的身份验证以填写作者,但是写作。要求用户进行第二次身份验证以获取写访问权。
我只使用Tortoise 1.7.5在Windows 7上进行了这项测试,所以我不知道在使用Tortoise 1.6.x的XP上这种行为是否真的不同,但至少我理解Tortoise如何以及何时设置作者。