有没有一种方法可以配置TortoiseHg来存储我的密码?
我有一个托管在Google Code上的项目,可以使用TortoiseHg访问。每当我想将更改推送到Google Code TortoiseHg时,都会提示我输入用户名和密码。Google Code要求我使用自动生成的密码,每次都需要重复查找。
有没有一种方法可以配置TortoiseHg来存储我的密码?
我有一个托管在Google Code上的项目,可以使用TortoiseHg访问。每当我想将更改推送到Google Code TortoiseHg时,都会提示我输入用户名和密码。Google Code要求我使用自动生成的密码,每次都需要重复查找。
Answers:
安全警告
尽管从2017年9月15日开始接受此答案,但不是推荐的解决方案。永远不要以纯文本形式存储密码。请改用mercurial_keyring
扩展名。在这里看到另一个答案。
您可以将推送URL更改为https:// username:password@hostname.com/repo。
Google Code和Mercurial的常见问题解答对此进行了说明。
编辑:Mercurial FAQ解释了另一种方法:
使用Mercurial 1.3,您还可以将auth部分添加到hgrc文件中:[认证] example.prefix = https://hg.example.net/ example.username = foo example.password =条
hg push
它是非破坏性的(您总是可以有hg strip
不需要的变更集),因此推送到远程存储库几乎不是一个特权较高的操作。因此,只要知道安全隐患,纯文本密码存储通常就足够了。
现有的两个答案都建议您以纯文本格式存储未加密的用户名和密码,这是不可以的。
您应该改用Keyring扩展名,因为它是专为安全保存身份验证密码而设计的。它已经与TortoiseHg捆绑在一起,因此您只需在mercurial.ini文件中写入以下内容即可激活它:
[extensions]
mercurial_keyring=
您还必须通过编辑特定于存储库的.hg \ hgrc文件,将用户名与推送网址相关联,如下例所示:
[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg
有关将用户名与url关联的更多详细信息,请参阅“ 密钥环扩展”页面的“ 存储库配置(SMTP)”部分。
[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
如果要通过TortoiseHg进行配置,则可以使用“存储库设置”对话框。打开对话框后,请切换到“同步”标签。您可以添加带有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 Code登录名,没有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