当我尝试克隆经过https验证的Mercurial存储库(例如来自窑)时,它会询问我的用户名
C:\temp\test>hg clone https://<my-login-name>.kilnhg.com/Code/Repositories/Group/test
http authorization required
realm: kiln
user:
我们希望使用用户提供的任何URL从我们的GUI应用程序调用{{1}}命令,并向用户按需询问用户名和密码(如果需要)。
如何配置Mercurial以调用返回用户名/密码的任意脚本,类似于在Git环境变量hg clone
或GIT_ASKPASS
中定义路径的脚本?
答案 0 :(得分:12)
您可以在用户范围hgrc
(用户个人资料目录中的mercurial.ini
,在Windows上)配置凭据:
[auth]
foo.prefix = example.com/path
foo.username = user
foo.password = password
之后,对此服务器的请求将默默使用hgrc
文件中提供的凭据。
有关详细信息,请参阅docs on hgrc
。
更新:在研究了TortoiseHg的来源(有问题的代码是sync.py中的SyncWidget.inclicked
和SyncWidget.pullclicked
方法)之后,我发现了表明你正在尝试实现的TortoiseHg显然首先尝试了auth请求的URL,如果已经给出,则询问用户登录和密码,重建完整的URL(带有凭据)并将其提供给hg pull
。
我想你也可以这样做。
答案 1 :(得分:6)
怎么样?
hg clone https://user:password@host:port
这样的解决方案对你不适用吗?