我使用mercurial key-ring extension将密码存储到BitBucket上的远程存储库中,所以每次推送到远程存储库时我都不必输入密码。具有讽刺意味的是,每当我需要访问它时,它会要求我输入密码来解锁密钥环;从而完全减轻了我对它的目的。我做错了什么?
在我的全局mercurial配置(〜/ .hgrc)中,我有以下几行:
[extensions]
hgext.mercurial_keyring = /etc/mercurial/mercurial_keyring.py
在我的repo mercurial config(.hg / hgrc)中,我有:
[paths]
default = https://username@bitbucket.org/username/repo
示例:
> hg out
> comparing with https://username@bitbucket.org/username/repo
> Please enter password for encrypted keyring:
我尝试卸载密钥环并再次尝试。我也玩过我在网上找到的配置设置无济于事。关于mercurial,我也无法在加密密钥环和非加密密钥环上找到任何内容。
当我对远程仓库执行操作时,如何才能完成输入密码?
答案 0 :(得分:0)
我不知道在问问题时是否已经是这种情况,但是现在在keyring extension wiki link in your question中直接说明了解决方案。
仅启用密钥环扩展是不够的,您还需要告诉Mercurial远程回购和配置文件中的用户名。
从链接中引用:
3.2。储存库配置(HTTP)
编辑本地存储库
.hg/hgrc
并将远程存储库保存在那里 路径和用户名,但不保存密码。例如:[paths] myremote = https://my.server.com/hgrepo/someproject [auth] myremote.schemes = http https myremote.prefix = my.server.com/hgrepo myremote.username = mekk
也可以使用带有url嵌入名称的简单表单:
[paths] bitbucket = https://User@bitbucket.org/User/project_name/
注意:如果用户名和密码均在
.hg/hgrc
中给出,则 扩展程序将使用它们而不使用密码数据库。如果 没有提供用户名,扩展名将提示输入凭据 时间,也无需保存密码。因此,在两种情况下 有效地恢复为默认行为。
请注意,您无需指定所有所有这些示例中显示的信息。
在我的计算机上(Windows上为Merurial 5.0.2),我使用的是更简单的表单,该表单也适用于多个存储库。
这是我实际配置文件中的1:1副本:
[extensions]
mercurial_keyring =
[auth]
bb.prefix = https://bitbucket.org/
bb.username = christianspecht
此操作使用密钥环扩展名为URL以christianspecht
开头的所有远程存储库保存用户https://bitbucket.org/
的密码。
前缀bb
可以自由选择,因此您可以使用它一次保存多个URL /用户名。
这非常好用((至少直到Bitbucket在几周内放弃Mercurial支持...)-它要求输入一次密码,然后自动将其保存,并且不再要求输入密码。 >
答案 1 :(得分:-1)
它要求我输入密码来解锁钥匙圈。我做错了什么?
无。阅读keyring docs,密码以访问密钥环 必须提供一次会话