有没有办法配置TortoiseHg来存储我的密码?
我有一个托管在Google 代码上的项目,我使用 TortoiseHg 访问它。每当我想将更改推送到 Google 代码时,TortoiseHg 都会提示我输入用户名和密码。Google Code 要求我使用自动生成的密码,而且每次都需要重复查找。
有没有办法配置TortoiseHg来存储我的密码?
我有一个托管在Google 代码上的项目,我使用 TortoiseHg 访问它。每当我想将更改推送到 Google 代码时,TortoiseHg 都会提示我输入用户名和密码。Google Code 要求我使用自动生成的密码,而且每次都需要重复查找。
现有的两个答案都建议以纯文本形式存储未加密的用户名和密码,这有点禁忌。
您应该改用Keyring扩展,因为它专为安全保存身份验证密码而设计。它已经与TortoiseHg捆绑在一起,因此您只需在mercurial.ini文件中写入以下内容即可激活它:
[extensions]
mercurial_keyring=
您还必须通过编辑特定于存储库的.hg\hgrc文件将您的用户名与推送 url 相关联,如下例所示:
[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg
三步,看截图。 注意:这会以明文形式存储您的密码。
安全警告
尽管此答案自 2017-09-15 起已被接受,但它不是推荐的解决方案。您永远不应该以纯文本形式存储您的密码。请改用mercurial_keyring
扩展名。在此处查看另一个答案。
您可以将推送 URL 更改为https://username:password@hostname.com/repo。
这在Google Code和Mercurial 的常见问题解答中有说明。
编辑: Mercurial FAQ 解释了另一种方法:
使用 Mercurial 1.3,您还可以在 hgrc 文件中添加 auth 部分:[认证] example.prefix = https://hg.example.net/ example.username = foo example.password = bar
如果你想通过 TortoiseHg 配置它,可以使用 Repository Setting 对话框。打开对话框后,请切换到“同步”选项卡。您可以添加带有 HTTPS 身份验证信息的路径。
http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings
只需修改本地存储库目录中的hgrc
文件,.hg
使其如下所示:
[paths]
default = https://name:password@yourproj.googlecode.com/hg/
其中name是您的 Google 代码登录名,没有 gmail/googlemail 位,例如“fredb”(不是 fredb@gmail.com),password是 Google 生成的密码,yourproj是您的 GC 项目的名称。所以像:
default = https://fred:xyz123@fredproj.googlecode.com/hg/
这适用于我使用SSH
. 我知道密码是纯文本的,但这在这个项目中不是问题。您必须更改 myUser 和 MyOPas 的凭据和路径:TortoisePlink.exe。编辑 mercurial.ini
[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw myPass
如果您想将密码存储在 mercurial.ini 中,并且在升级到 TortoiseHg 4.9 或更高版本后它不再起作用,可能的解决方案是将端口添加到前缀中:
[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword