对于我推送的所有其他Mercurial回购,我可以在我的hgrc中设置我的用户名和密码(实际上,因为我使用Windows,Mercurial.ini)在特定域中进行操作,并且Mercurial不会提示我的身份证明信息。但是,即使有这些设置,Bitbucket 总是要求我输入密码。
我的设置如下:
[auth]
bitbucket.prefix = bitbucket.org
bitbucket.username = myusername
bitbucket.password = mypassword
正如我所说,这些设置适用于我推送的所有其他回购。
答案 0 :(得分:44)
原来问题在于我使用的是Bitbucket存储库页面上显示的存储库的URL,其中包含bitbucket域名前面的用户名,因此最终看起来像https://myusername@bitbucket.org/myusername/myrepo
。
显然,当以这种方式提供用户名时,它会忽略[auth]
部分中的内容。我刚刚更改了hgrc中我的本地克隆版本的URL,并且它正好拿起了[auth]
部分。
不在问题中包含此细节的道歉。
答案 1 :(得分:5)
您是否正在使用bitbucket的ssh://网址或https://网址? Bitbucket提供两者。如果是ssh,则需要使用ssh-agent或类似的(ssh不使用[auth]
部分)将密钥保存在内存中或切换到https:URL。您也可以尝试添加bitbucket.schemes = http https
以防万一,但如果您使用的是https://网址,则https
的默认值应该没问题。还要注意bitbucket用户名区分大小写 - 这让我有一段时间了。
如果这些都不适合您,请尝试使用--debug
启用调试,看看是否有任何消息可以提供帮助。