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

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

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

我使用tortoiseSVN作为SVN客户端.

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

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

我可以想到两件事:

>您通过LDAP使用Windows AD,旧服务器根据用户的cn属性进行验证,而新服务器则针对sAMAccountName进行验证.
>您的旧服务器有一个提交后挂钩,它将svn:author revision属性从用户的登录ID更改为用户的名称.

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

附加评论

Thanks David. I will check that though I am not sure if I will be able to, because of access restrictions. Do you know if I could just set a client side prop value like set “X123” as “John Doe”. So that when I view log all the committer’s name that has X123 will show up as John Doe?

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

我可以提出一些建议:

>你可以使用像Jenkins这样的东西.Jenkins是一个连续构建引擎.但是,它还会将您的完整历史记录存储在易于使用的界面中.如果您使用的是LDAP或Windows AD,它可以做的一件事就是将用户ID转换为实际名称.因此,如果您查看Jenkins的历史记录,您将看到实际的用户名.
>您可以使用其他修订属性.例如,local:username.这又是一个post-commit钩子.但是,它不会更改svn:author revision属性,因此您不会有任何可能的副作用.当您需要通过svn pg –rev-prop -r $rev命令查看用户名时,可以快速查找.或者你可以使用svn日志看到它,如果你使用–with-rev-prop local:username或–with-all-revprops参数以及–xml参数(对不起,只显示在以XML格式记录).

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

点赞