2014-09-03 78 views
4

git-svn document的git svn的HTTPS认证

--username = 对于传输该SVN处理认证为(HTTP,HTTPS,和滑动SVN),指定用户名。对于其他交通工具(如SVN + SSH://),则必须在URL中包含用户名,如SVN + SSH://[email protected]/project

然而,在我的电脑( Windows 7中,Git版本1.9.4.msysgit.0),当我使用

git svn clone https://server/svn/repo 

它要求密码我的Windows用户名,然后再(失败,因为服务器使用SVN AUTH)向服务器用户名称和密码。一切正常。

当我尝试克隆另一个回购时发生问题。由于此回购仅适用于其他用户,因此我使用以下命令。

git svn clone https://server/svn/repo1 --username xxx 

我期待它要求密码,但它没有。它只是失败了一个403错误。

我也试图克隆第三回购是提供给两个用户,但我想指定用户是后一个,

git svn clone https://server/svn/repo2 --username xxx 

它的成功没有任何密码提示。由于密码不同,它必须使用先前的用户凭证。

后来我认识到,我将使用

git svn clone https://server/svn/repo2 --username=xxx 

,但它仍然是同样的事情。

所以它看起来像--username=xxx没有做任何事情。如何解决这个问题?

+1

您是否尝试按照这里建议的方式清除认证缓存http://stackoverflow.com/questions/2191025/git-svn-clear-auth-cache? – 2014-09-03 06:51:19

+0

我没有...让我试试。 – 2014-09-03 07:14:07

回答

2

谢谢谢尔盖的提示。在我清除了颠覆证书缓存后(%HOMEPATH%\。subversion \ auth \ svn.simple),它确实有效。

但是我不知道为什么它是这样设计的 - 我期望显式的“--username”参数应该覆盖凭证缓存中的所有内容。也许这只是一个错误?