为什么Subversion不允许“。”和用户名中的“@”?或者是吗?

时间:2009-05-10 08:02:44

标签: email svn username

我们希望在所有开发工具中使用相同的用户ID,但这种来自subversion的限制不允许我们将电子邮件地址用作用户名。

6 个答案:

答案 0 :(得分:2)

这实际上取决于你如何设置Subversion。 svnserve的标准Subversion内置身份验证可能不允许。和@(我没试过)。我使用Apache而不是内置的svnserve设置了我的Subversion存储库。在Apache下,您可以使用标准的Apache访问控制,如htpasswd文件,甚至可以与LDAP或Microsoft Active Directory集成。然后,您可以为Subversion用户使用电子邮件地址或AD登录。

答案 1 :(得分:2)

好吧,既然你可以创建由多个用户组成的组,然后使用@< groupname>来引用它们,我想在常规用户名中使用@可能是个问题。

这是在创建新的svn存储库时生成的默认authz文件中的示例:

[groups]
harry_and_sally = harry,sally
[repository:/baz/fuz]
@harry_and_sally = rw

这为组中的用户提供了对/ baz / fuz中存储库的harry_and_sally读写权限。

答案 2 :(得分:1)

Subversion实际上在内部使用UTF-8存储其所有数据,包括用户名,因此对用户命名的内容没有任何限制。例如,我刚刚与用户创建了一个提交:

'Й, ק,‎ م, ๗, あ, 叶, 葉, and 말.'

问题是,其他程序可能会为特殊目的保留某些字符,例如svn passwd文件中的[,=和#。 Subversion可以处理更广泛的用户名,但特定的文件格式不能。如果您发现自己无法使用某些字符,则链接中的某些其他链接(如Apache或IDE或您的数据库)或其他任何链接都会受到限制。

这没有太大帮助,因为你可能无法轻易修复造成这个或切换工具的任何东西,但现在这就是“怪异”角色的状态。

答案 3 :(得分:0)

确实允许“。”在用户名中,从未尝试过@。

答案 4 :(得分:0)

在我的$ JOB公司电子邮件地址是Subversion的标准用户名,所以它必须有效。

然而,在我的团队中,我们坚持要求我们的(也是公司范围的)Windows用户名,这些用户名不得超过8个字符。像Reallylongfirst.Andlastname@amazing-products.com这样的用户名会在标准的GUI日志查看器中造成可怕的可用性,并且与svn blame不能很好地协同使用。

答案 5 :(得分:0)

构造包含用户名的URI的常用方法是 protocol://user@host:port/path。 svn也使用它,所以@字符是特殊的。我没有尝试,但我相信你可以逃脱它(如%40)使它工作。但是,IMO使用完整的电子邮件地址作为用户名是一个相当糟糕的主意。如果你在公司内部,为什么不能使用本地部分?对于所有用户来说,其他所有内容都很可能是相同的,因此您只是重复信息 - 并且它不能很好地与日志视图一起使用。

另见RFC 3986