SVN显示用户名而不是用户ID

时间:2013-05-06 18:10:35

标签: svn

因此,我们拥有这个SVN存储库,其中提交者名称的显示更加清晰,并且更容易跟踪谁做了什么。最近,svn存储库被移动到另一个服务器并且它被设置为现在当我们检查日志时我们只能看到作者的用户ID。我相信我们可以更新服务器中的SVN authz或其他一些设置文件来添加作者姓名。

我想问的是,有没有办法在客户端做到这一点?主要是因为我们没有访问权限或修改SVN服务器设置的权限。有没有办法我可以拥有一个道具或其他我可以拥有映射的东西,它可以显示在日志中。

我使用tortoiseSVN作为SVN客户端。

2 个答案:

答案 0 :(得分:1)

日志中显示的用户ID是在提交修订时用于向服务器进行身份验证的ID。无法直接在客户端内更改客户报告的内容;您只能提取日志并在事后重新映射ID,并且每次要提取日志时都必须这样做。

答案 1 :(得分:1)

这些Subversion用户ID来自哪里?您的Subversion是否像Windows Active Directory一样与LDAP集成,还是一个单独的Subversion授权文件?

用户ID是否从旧服务器(人们使用其姓名)更改为当前用户ID?

我可以想到两件事:

  • 您通过LDAP使用了Windows AD,旧服务器根据用户的cn属性进行了验证,而新服务器则针对sAMAccountName进行了验证。

  • 您的旧服务器有一个提交后挂钩,它将svn:author修订版属性从用户的登录ID更改为用户名。

你还有旧的Subversion服务器吗?您应该看看是否可以在设置中找到差异。


其他评论

  

谢谢大卫。我会检查,虽然我不确定我是否能够,因为访问限制。你知道我是否可以设置一个客户端支持值,如设置“X123”为“John Doe”。因此,当我查看日志时,所有具有X123的提交者名称将显示为John Doe?

svn:author revision属性包含执行提交的用户的名称。您可以将其更改为您想要的任何内容。正如我之前所说,我已经看到网站使用post-commit钩子做这件事。我不喜欢这样做。但是,有些网站似乎为用户名选择随机字符串。就像你在你的例子中所说的那样X123。诱惑命运和改变svn:author的诱惑可能非常强烈。

我可以提出一些建议:

  • 您可以使用Jenkins之类的内容。 Jenkins是一个持续构建的引擎。但是,它还会将您的完整历史记录存储在易于使用的界面中。如果您使用的是LDAP或Windows AD,它可以做的一件事就是将用户ID转换为实际名称。因此,如果您查看Jenkins的历史记录,您将看到实际的用户名。

  • 您可以使用其他修订属性。例如,local:username。这又是一个post-commit钩子。但是,它不会更改svn:author版本属性,因此您不会有任何可能的副作用。当您需要通过svn pg --rev-prop -r $rev命令查看用户名时,可以快速查找。或者,如果您使用svn log--with-rev-prop local:username参数以及--with-all-revprops参数,那么您可以使用--xml查看它(抱歉,只会在日志中显示XML格式)。

顺便说一下,如果您使用post-commit挂钩更改svn:author或添加local:username修订版属性,则还需要添加pre-revprop-change到授予您更改/添加修订属性的权限。这与所有其他钩子相反。在这些钩子中,您必须生成非零退出值以防止操作。在这一个中,您希望生成零退出值以允许操作。如果没有此挂钩,您将无法更改版本属性。