我在使用svn定义外部仓库时遇到了错误。在我的存储库中,我对需要身份验证的企业存储库(svn + ssh)进行了外部定义。它在我的机器上完美运行,但我的机器和svn都有相同的用户名。
当我尝试将此结帐复制到具有不同用户名的另一台计算机时,所有结帐都可以正常工作,直到它到达外部存储库。此时,不是使用我的svn用户名同步外部,而是尝试将外部信息与机器的用户名同步。
我以这种方式设置外部:
svn propset svn:externals 'dd1 svn+ssh://subversion.example.int/var/subversion/dd1/trunk' .
svn commit
我无法定义外部用户名和用户名,因为每个人都有自己的用户/密码
有什么想法吗? 感谢。
答案 0 :(得分:2)
解决。
问题是svn + ssh之间的组合。 Ssh将用户名提供给svn。您可以通过编写svn + ssh://username@svn.server.com/trunk来强制使用用户名,但可以使用默认用户名进行外部提取(因为这是一个不同的svn身份验证过程)。
解决方案是编写一个配置文件(〜/ .ssh / config)并在里面写:
Host subversion.example.int
User svn_user
(更多信息:http://www.eall.com.br/blog/?p=105)
通过它,您可以在计算机的用户和服务器的用户之间创建别名。在此之前,外部将始终通过svn_user而不是machine_user询问您(只要您不更改外部表单subversion.example.int)