【发布时间】:2011-01-01 03:22:53
【问题描述】:
有没有办法配置TortoiseHg 来存储我的密码?
我有一个托管在Google Code 上的项目,我使用 TortoiseHg 访问该项目。每当我想将更改推送到 Google 代码时,TortoiseHg 都会提示我输入用户名和密码。 Google Code 要求我使用自动生成的密码,而且每次查找都会非常重复。
【问题讨论】:
标签: mercurial tortoisehg google-code
有没有办法配置TortoiseHg 来存储我的密码?
我有一个托管在Google Code 上的项目,我使用 TortoiseHg 访问该项目。每当我想将更改推送到 Google 代码时,TortoiseHg 都会提示我输入用户名和密码。 Google Code 要求我使用自动生成的密码,而且每次查找都会非常重复。
【问题讨论】:
标签: mercurial tortoisehg google-code
现有的两个答案都建议将您的用户名和密码未加密存储在纯文本中,这有点禁忌。
您应该改用Keyring 扩展名,因为它专为安全保存身份验证密码而设计。它已经与TortoiseHg 捆绑在一起,因此您只需在 mercurial.ini 文件中写入以下内容即可激活它:
[extensions]
mercurial_keyring=
您还必须通过编辑特定于存储库的 .hg\hgrc 文件将您的用户名与推送 URL 相关联,如下例所示:
[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg
有关将您的用户名与网址关联的更多详细信息,请参阅Keyring 扩展页面的Repository Configuration (SMTP) 部分。
【讨论】:
[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
三步,看screenshot。 注意:这会以明文形式存储您的密码。
【讨论】:
安全警告
虽然这个答案在 2017 年 9 月 15 日被接受,但它不是推荐的解决方案。您永远不应该以纯文本形式存储您的密码。请改用 mercurial_keyring 扩展名。请在此处查看another answer。
您可以将推送 URL 更改为https://username:password@hostname.com/repo。
这在Google Code's 和Mercurial's 常见问题解答中有说明。
编辑:Mercurial FAQ 解释了另一种方法:
使用 Mercurial 1.3,您还可以在 hgrc 文件中添加 auth 部分: [认证] example.prefix = https://hg.example.net/ example.username = foo example.password = bar
【讨论】:
hg push 是非破坏性的(你总是可以hg strip 不需要的变更集),推送到远程存储库几乎不是一个高权限操作。因此,只要知道安全隐患,明文密码存储通常就足够了。
如果你想通过 TortoiseHg 配置它,可以使用 Repository Setting 对话框。 打开对话框后,请切换到“同步”选项卡。 您可以添加带有 HTTPS 身份验证信息的路径。
http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings
【讨论】:
只需修改本地存储库的.hg 目录中的hgrc 文件,使其如下所示:
[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
【讨论】: